[태그:] <span>ArrayIndexOutOfBoundsException 클래스</span>

Java에서는 던져진 예외를 잡아서 처리하는 방법을 제공하고 있습니다. 먼저 개발자는 예외가 발생할 수도 있다고 생각하는 부분을 try 블록으로 지정하고 이어서 catch 블록을 지정하여 원하는 예외 개체를 잡아서 예외를 처리합니다.

try{

    …예외가 발생할 수도 있는 코드

}

catch(예외 개체 변수명){

    …예외를 잡아서 처리할 구문…

}

 

다음은 배열의 유효하지 않은 인덱스를 사용할 때 발생하는 ArrayIndexOutOfBoundsException을 던져졌을 때 개발자가 이를 잡아 처리하지 않았을 때의 코드와 출력 내용입니다. 참고로 모든 예외 클래스는 기반 클래스 Exception 에서 파생한 형식입니다.

 

▷ 소스 2.2 예외를 잡아서 처리하는 코드

▷ 소스 2.2 실행 결과

 

출력 결과를 보는 것처럼 예외가 발생하면 이 후의 코드는 수행하지 않고 catch 블록을 진행하는 것을 알 수 있습니다. 그리고 catch 블록은 하나의 try 문 뒤에 여러 개가 올 수 있으며 이 때는 앞에 catch문부터 던져진 예외를 잡기를 시도합니다. 만약 하나의 catch 문에서 예외를 잡아서 처리하면 이 후의 catch 문은 예외를 잡지 못합니다.

 

따라서 여러분이 계층화 예외 클래스가 있을 때 catch 블록문은 파생 형식 개체를 잡는 부분을 앞쪽에 두어야 합니다. 다음은 ArrayIndexOutOfBoundsException이 발생했을 때 Exception 개체를 받는 catch 블록을 ArrayIndexOutOfBoundsException 개체를 받는 catch 블록보다 앞에 배치하였을 때 나오는 코드와 출력 내용입니다.

 

▷ 소스 2.3 기반 형식 예외 개체를 잡는 catch 블록을 앞에 두었을 때 코드

▷ 소스 2.3 실행 결과

 

다음은 ArrayIndexOutOfBoundsException이 발생했을 때 ArrayIndexOutOfBoundsException 개체를 받는 catch 블록을 기반 형식 Exception 개체를 받는 catch 블록보다 앞에 배치하였을 때 나오는 코드와 출력 내용입니다.

 

▷ 소스 2.4 기반 형식 예외 개체를 잡는 catch 블록을 뒤에 두었을 때 코드

▷ 소스 2.4 실행 결과