NOTE
finally 블록을 조금 더 설명하겠습니다. 참고로 봐주세요. 앞의 예제에서,
catch(ArithmeticException e) { System.out.println("0으로 나눌 수 없습니다."+e.toString()); }
이 부분을
catch(NullPointerException e) { System.out.println("Null은 처리할 수 없습니다."+e.toString()); }
이렇게 바꾸고 실행해보세요. Try 구문에서는 ArithmeticException이 발생했는데, catch 블록에는 해당 Exception을 catch할 블록이 없기 때문에 적절하게 처리할 수가 없습니다. 이렇게 예외를 제대로 처리하지 못하면 프로그램은 종료되겠죠? 이런 상황에서도 finally 블록은 실행하기 때문에 여러분의 실행결과에 ‘예외와 상관없이 무조건 실행!’ 부분은 출력하지만 ‘main end’는 출력하지 않습니다.
즉, try 블록이 있다고 모든 예외를 처리할 수는 없습니다. 그래서 try 블록에서 여러 종류의 예외가 발생한다면 catch 블록 역시 여러 개를 사용할 수 있습니다. 다음과 같이,
catch(NullPointerException e) { System.out.println("Null은 처리할 수 없습니다."+e.toString()); }catch(NullPointerException e) { System.out.println("Null은 처리할 수 없습니다."+e.toString()); }
얼마든지 catch 블록을 여러 개 사용할 수 있습니다.