개발 등/중급

printStackTrace() || toString || getMessage

darkhorizon 2008. 8. 26. 10:08
728x90
반응형
public class ErrMessageTest {
    public static void main(String[] args) {
        try{
            System.out.println(0/0);
            System.out.println(2);
        }catch(Exception e){
            System.out.println("e.getMessage() :"+e.getMessage());
            System.out.println("e.toString() :"+e.toString());
            System.out.print("e.printStackTrace() :");
            e.printStackTrace();
        }
    }
}

: 출력값

e.getMessage() :/ by zero
e.toString() :java.lang.ArithmeticException: / by zero
e.printStackTrace() :java.lang.ArithmeticException: / by zero
    T4.main(T4.java:7)

1. getMessage() : Throwable 클래스에서 getMessage()를 다음과 같이 정의하고 있다.
         public String getMessage() {
            return detailMessage;
        }
    즉, 에러가 발생하면서 생기는 간단한 메시지를 리턴해 준다.

2. toString() : Throwable 클래스에 정의된 toString()
         public String toString() {
               String s = getClass().getName();
               String message = getLocalizedMessage();
               return (message != null) ? (s + ": " + message) : s;
          }
                  
        public String getLocalizedMessage() {
            return getMessage();
        }
    위에서 정의된 것처럼 toString을 호출하면 클래스 이름과 함께 getMessage()를 호출하게 된다.

3. printStackTrace() :
       toString() 와 에러 발생 소스코드 위치를 단계별로 리턴해 준다.
      
728x90