Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 printStackTrace() 메소드와 getMessage() 메소드의 차이점은 무엇입니까?


예외 세부정보를 찾는 방법에는 두 가지가 있습니다. 하나는 printStackTrace() 메서드이고 다른 하나는 getMessage() 메서드입니다.

printStackTrace() 메소드

  • java.lang.Throwable 클래스에 정의된 메소드로, java.lang.Error 클래스와 java.lang.Exception 클래스에 상속된다.
  • 이 메서드는 예외의 이름과 메시지의 특성 및 예외가 발생한 줄 번호를 표시합니다.

public class PrintStackTraceMethod {
   public static void main(String[] args) {
      try {
         int a[]= new int[5];
         a[5]=20;
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

출력

java.lang.ArrayIndexOutOfBoundsException: 5
        at PrintStackTraceMethod.main(PrintStackTraceMethod.java:5)

getMessage() 메서드

  • java.lang.Throwable 클래스에 정의된 메소드로 java.lang.Error 및 java.lang.Exception 클래스에 상속된다.
  • 이 방법은 유일한 예외 메시지를 표시합니다.

public class GetMessageMethod {
   public static void main(String[] args) {
      try {
         int x=1/0;
      } catch (Exception e) {
         System.out.println(e.getMessage());
      }
   }
}

출력

/ by zero