0/0을 출력하는 구문에서 ArithmeticException이 발생한다. 또한 ArithmeticException을 제외한 다른 Exception이 발생할 경우를 예상하여 catch(Exception e)를 작성해 주었다.
Exception객체는 모든 예외에 대한 부모 예외기 때문에 예상하지 못한 예외가 발생하더라도 해당 catch구문으로 들어가게된다.
0/0에서 예외가 발생하기때문에 system.out.println(4)는 실행하지않고 catch(ArithmeticException ae)를 실행하게 된다.
true와 ArithmeticException을 출력한후 try-catch구문 이후 코드들을 실행시킨다.
메서드에 예외를 선언한것이다.
해당 방법은 메서드에서 예외가 발생할경우 해당 예외를 자신을 호출한 메서드에게 전달하여 예외처리를 떠맡기는 것이다.
method2에서 throw new Exception()으로 예외가 발생하게 되고 해당 메서드는 throws구문을 통해 method2를 호출한 method1로 넘어간다.
method1에서도 thrwos구문을 통해 method1을 호출한 main메소드로 예외를 떠넘긴다.
main 메소드에서 예외를 throws할경우 JVM에 예외를 떠넘긴다.
이후 JVM의 기본예외 처리기가 위와같은 출력을 한다.
위와 같이 메서드에서 발생한 예외를 처리하지않고 자신을 호출한 메서드에게 계속 떠넘겨줄 수 있지만 해당 행위는 예외를 처리하는 것이 아닌 단순히 전달만 하는 것이기 때문에 반드시 어느 한곳에서 try-catch구문을 통해 예외처리를 해주어야한다.
'Programming > JAVA' 카테고리의 다른 글
StringBuffer클래스와 StringBuilder클래스 (0) | 2021.07.26 |
---|---|
String 클래스 (0) | 2021.07.26 |
Object클래스 메서드 (0) | 2021.07.18 |
Interface를 이용한 다형성 (0) | 2021.07.17 |
JAVA 접근 제어자 (0) | 2021.07.15 |