finally 블록도 잘 출력합니다. 지금은 예외가 발생한 상태인데, 만약 예외가 발생하지 않는 상태라면 어떻게 출력할까요? 자, 예외가 발생하지 않도록 코드를 수정하겠습니다.
package javaStudy;
public class ExceptionExam {
public static void main(String[] args) {
int i = 10;
int j = 5;
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!!");
}
}
실행결과
2
예외와 상관없이 무조건 실행! main end!!
실행결과 예외가 발생하지 않았기 때문에 catch 블록은 실행하지 않았습니다. finally 블록은 예외가 발생하지 않아도 무조건 실행했습니다.
처음에는 예외가 발생해 프로그램을 강제 종료했는데, catch 블록으로 예외를 처리하니 프로그램을 종료하지 않고 잘 실행합니다.