何時在 Java 中使用 fillInStackTrace() 方法?


Throwable 類中的 fillInStackTrace() 是 Java 中一個重要的方法。堆疊跟蹤對於確定異常的具體丟擲位置很有用。在某些情況下,我們可能需要重新丟擲一個異常並找出其重新丟擲的位置,在這種情況下,我們可以使用 fillInStackTrace() 方法。

語法

public Throwable fillInStackTrace()

示例

public class FillInStackTraceTest {
   public static void method1() throws Exception {
      throw new Exception("This is thrown from method1()");
   }
   public static void method2() throws Throwable {
      try {
         method1();
      } catch(Exception e) {
         System.err.println("Inside method2():");
            e.printStackTrace();
            throw e.fillInStackTrace(); // calling fillInStackTrace() method
      }
   }
   public static void main(String[] args) throws Throwable {
      try {
         method2();
      } catch (Exception e) {
         System.err.println("Caught Inside Main method()");
         e.printStackTrace();
      }
   }
}

輸出

Inside method2():
java.lang.Exception: This is thrown from method1()
	at FillInStackTraceTest.method1(FillInStackTraceTest.java:3)
	at FillInStackTraceTest.method2(FillInStackTraceTest.java:7)
	at FillInStackTraceTest.main(FillInStackTraceTest.java:16)
Caught Inside Main method()
java.lang.Exception: This is thrown from method1()
   at FillInStackTraceTest.method2(FillInStackTraceTest.java:11)
   at FillInStackTraceTest.main(FillInStackTraceTest.java:16)

更新於: 23-Nov-2023

1 千+ 瀏覽量

開啟你的職業生涯

完成課程即可獲得認證

開始
廣告