블록 안 메시지 부분만 더 살펴보겠습니다. ArithmeticException라는 예외 객체를 e라는 참조 변수가 가리킵니다. 그리고 e라는 참조 변수는 toString이라는 메서드를 가집니다. toString 메서드는 예외 정보를 알려줍니다. 즉, 괄호 안 메시지 ‘변수명+마침표+toString()’은 예외 정보를 출력한 것입니다.
이렇게 작성하고 다시 실행해보겠습니다.
실행결과
0으로 나눌 수 없습니다.java.lang.ArithmeticException: / by zero main end!!
아까 예외 처리를 하지 않았을 때는 예외가 발생한 지점부터 프로그램을 실행하지 않았습니다. 지금은 catch 블록도, 그 이후 부분도 모두 출력했습니다. 여기에 finally 구문도 만들어 실행해보겠습니다.
package javaStudy; public class ExceptionExam { public static void main(String[] args) { int i = 10; int j = 0; try{ int k = i/j; System.out.println(k); }catch(ArithmeticException e) { System.out.println("0으로 나눌 수 없습니다."+e.toString()); }finally{ System.out.println("예외와 상관없이 무조건 실행!"); } System.out.println("main end!!"); } }
실행결과
0으로 나눌 수 없습니다.java.lang.ArithmeticException: / by zero 예외와 상관없이 무조건 실행! main end!!