실제로 Running을 하게 되면 ArrayIndexOutOfBoundException이 발생합니다.
예외 처리 방법
예외복구
네트워크가 환경이 좋지 않아서 서버에 접속이 안되는 상황의 시스템에 적용하면 효율적입니다.
예외를 잡아서 일정 시간만큼 대기하고 다시 재시도를 반복합니다.
그리고 최대 재시도 횟수를 넘기면 예외를 발생합니다.
int maxretry = MAX_RETRY;while(maxretry -- > 0) { try { // 예외가 발생할 가능성이 있는 시도 return; // 작업성공시 리턴 } catch (SomeException e) { // 로그 출력. 정해진 시간만큼 대기 } finally { // 리소스 반납 및 정리 작업 }}throw new RetryFailedException(); // 최대 재시도 횟수를 넘기면 직접 예외 발생
예외처리 회피
예외가 발생하면 throws를 통해 호출한쪽으로 예외를 던지고 그 처리를 회피합니다.
단 예외처리의 필요성이 있다면 어느 정도 처리하고 호출한 쪽으로 넘기는게 좋습니다. 무책임하게 던지는 것은 위험합니다.
public void add() throws SQLException { ... // 구현 로직}
예외 전환
호출한 쪽에서 예외를 받아서 처리할 때 좀 더 명확하게 인지할 수 있도록 돕기 위한 방법입니다.