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