ABOUT ME

Today
Yesterday
Total
  • 자바의정석 Exception 예외처리, printStackTrace() (Ex8~
    Java/자바의정석 2023. 2. 21. 15:39
    반응형
    class Ex8_5 {
        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) {
                //-printStackTrace() : 예외발생 당시 호출스택에 있었던 메서드의 정보와 예외 메세지를 화면에 출력한다
                ae.printStackTrace();
    
                //-getMessage() : 발생한 예외 클래스의 인스턴스에 저장된 메시지를 얻을 수 있다
                System.out.println("에러메시지는: " + ae.getMessage());
            }
    
            System.out.println(6);
        }  // main종료
    }

    =============실행결과==============

    1
    2
    3
    java.lang.ArithmeticException: / by zero at Chap08.Ex8_5.main(Ex8_5.java:10)
    에러메시지는: / by zero
    6


    앞선 게시글에서 예외처리에대해 아주 간단하게 학습을했다. 이번엔 예제로 확인을 해보자.

     

    main메서드가 실행됨으로

    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) {
        //-printStackTrace() : 예외발생 당시 호출스택에 있었던 메서드의 정보와 예외 메세지를 화면에 출력한다
        ae.printStackTrace();
    
        //-getMessage() : 발생한 예외 클래스의 인스턴스에 저장된 메시지를 얻을 수 있다
        System.out.println("에러메시지는: " + ae.getMessage());
    }

    try 내부 실행도중 System.out.println(0/0)부분에서 ArithmeticException이 발생한다.

    에러가 발생된다면 에러가 발생된 시점에 바로 catch문으로 이동한다.

     

    해당 에러를 catch문에서 ArithmeticException참조형의 ae참조변수를 넘겨받아 예외를 처리한다.

     

    printStackTrace() : 예외발생 당시 호출스택에 있었던 메서드의 정보와 예외 메시지를 화면에 출력한다.

     

    해당 메서드로 전달받은 에러메시지를 이용하여 해당 에러에대한 메시지를 불러온다.

     

     

    반응형

    댓글

Designed by Tistory.