Strong Root


문제


출력 결과는 무엇일까요?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class Test {
    public static void main(String[] args) {
        int[] arr = new int[2];
 
        try {
            arr[0= 0;
            System.out.println(arr[0]);
 
            arr[1= 1;
            System.out.println(arr[1]);
 
            arr[2= 2;
            System.out.println(arr[2]);
        }
        catch (NullPointerException e) {
            System.out.println(3);
        }
        catch (ArrayIndexOutOfBoundsException e) {
            System.out.println(4);
        }
        catch (Exception e) {
            System.out.println(5);
        }
        finally {
            System.out.println(6);
        }
 
        System.out.println(7);
    }
}
cs
















정답







해설


1. Exception 발생 즉시 try 문은 건너뛰고 catch 문으로 간다.


2. catch 가 여러개이면 맨 위부터 현재 Exception 을 잡아줄 수 있는지 체크하며,


   잡아줄 수 있는 최초의 catch 문만 수행하고 finally 로 간다.


3. finally 문이 있다면 수행 후 빠져나가고 프로그램은 아래로 계속 진행된다.