충분히 쌓여가는
printStackTrace(), getMessage() 본문
printStackTrace(), getMessage()
printStackTrace() | 예외 발생 당시의 호출 스택(Call Stack)에 있었던 메서드의 정보와 예외 메시지를 화면에 출력한다 |
getMessage() | 발생한 예외 클래스의 인스턴스에 저장된 메시지를 얻을 수 있다 |
0으로 나누었을 때 예외 객체(ArithmeticException)가 생성된다
생성된 예외 객체에는 printStackTrace(), getMessage()과 같은 메서드들이 있다
catch 블럭에서 ArithmeticException을 처리할 수 있는 지 확인한다
발생한 예외객체(ArithmeticException)와 참조변수 ae의 타입(ArithmeticException)이 일치한다
catch 블록 내에서 참조변수 ae를 통해 발생한 예외 객체를 사용할 수 있다(객체에 담긴 예외 정보를 알 수 있다)
이때 사용 하는 것이 printStackTrace(), getMessage()과 같은 메서드이다
try {
...
System.out.println(0/0); // 예외 발생
...
} catch (ArithmeticException ae) { // 0으로 나눈 Arithmeticexception 예외처리함
ae.printStackTrace();
System.out.println(ae.getMessage());
} catch (Exception e) {
...
}
코드
public class ArithmeticexceptionTest {
public static void main(String[] args) {
System.out.println(1);
System.out.println(2);
try {
System.out.println(3);
System.out.println(0/0); // 예외발생
System.out.println(4); // 실행되지 않는다
} catch (ArithmeticException ae) {
ae.printStackTrace(); // 참조변수 ae를 통해, 생성된 ArithmeticException 인스턴스에 접근할 수 있다
System.out.println("예외 메시지: " + ae.getMessage());
}
System.out.println(6);
}
}
1
2
3
java.lang.ArithmeticException: / by zero
at ArithmeticexceptionTest.main(ArithmeticexceptionTest.java:7)
예외 메시지: / by zero
6
'Java > JAVA2' 카테고리의 다른 글
예외 발생시키기 (0) | 2023.06.22 |
---|---|
멀티 catch 블럭 (0) | 2023.06.22 |
예외 처리하기, try-catch문 (0) | 2023.06.20 |
프로그램 오류, 예외 클래스의 계층구조 (0) | 2023.06.19 |
익명 클래스(anonymous class) (0) | 2023.06.19 |