심심풀이 문제5 - 예외 처리 흐름 (Exception handling flow)
뿌리튼튼 CS/Java2016. 10. 4. 20:43
문제
출력 결과는 무엇일까요?
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 문이 있다면 수행 후 빠져나가고 프로그램은 아래로 계속 진행된다.
'뿌리튼튼 CS > Java' 카테고리의 다른 글
[추천] Set of Set 문제 및 Set.hashCode()고찰 (0) | 2019.04.18 |
---|---|
심심풀이 문제6 - 상속과 오버라이딩 (Heritage & Overriding) (0) | 2016.10.04 |
심심풀이 문제4 - Object Assign (객체 대입) (0) | 2016.10.04 |
심심풀이 문제3 - Call by Value vs Call by Reference (0) | 2016.10.04 |
심심풀이 문제2 - String (0) | 2016.08.02 |