Notice
Recent Posts
Recent Comments
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

printStackTrace(), getMessage() 본문

Java/JAVA2

printStackTrace(), getMessage()

빌드이너프 2023. 6. 22. 11:10

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