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: Index 5 out of bounds for length 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 

更新於: 2023-11-17

4 千+ 瀏覽量

啟動您的 職業生涯

完成課程即可獲得認證

開始吧
廣告