Computer >> Máy Tính >  >> Lập trình >> Java

Khi nào sử dụng phương thức fillInStackTrace () trong Java?

fillInStackTrace () là một phương pháp quan trọng của Có thể ném lớp trong Java. Dấu vết ngăn xếp có thể hữu ích để xác định vị trí chính xác ngoại lệ được ném. Có thể có một số tình huống mà chúng tôi cần thực hiện lại một ngoại lệ và tìm ra vị trí của nó được phát triển lại chúng ta có thể sử dụng fillInStackTrace () trong các tình huống như vậy.

Cú pháp

public Throwable fillInStackTrace()

Ví dụ

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();
      }
   }
}

Đầu ra

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:18)
Caught Inside Main method()
java.lang.Exception: This is thrown from method1()
        at FillInStackTraceTest.method2(FillInStackTraceTest.java:12)
        at FillInStackTraceTest.main(FillInStackTraceTest.java:18)