fillInStackTrace() là một phương thức quan trọng của lớp Throwable trong Java. Dấu vết ngăn xếp (stack trace) có thể hữu ích để xác định chính xác nơi ngoại lệ được ném. Có thể có những tình huống chúng ta cần ném lại một ngoại lệ và tìm ra nơi nó được ném lại, chúng ta có thể sử dụng phương thức fillInStackTrace() trong những trường hợp như vậy.
Cú pháp
public Throwable fillInStackTrace()
Ví dụ
public class FillInStackTraceTest {
public static void method1() throws Exception {
throw new Exception("Đây là ngoại lệ ném từ method1()");
}
public static void method2() throws Throwable {
try {
method1();
} catch (Exception e) {
System.err.println("Bên trong method2():");
e.printStackTrace();
throw e.fillInStackTrace(); // Gọi phương thức fillInStackTrace()
}
}
public static void main(String[] args) throws Throwable {
try {
method2();
} catch (Exception e) {
System.err.println("Bắt trong phương thức main()");
e.printStackTrace();
}
}
}
Kết quả
Bên trong method2():
java.lang.Exception: Đây là ngoại lệ ném từ method1()
at FillInStackTraceTest.method1(FillInStackTraceTest.java:3)
at FillInStackTraceTest.method2(FillInStackTraceTest.java:7)
at FillInStackTraceTest.main(FillInStackTraceTest.java:18)
Bắt trong phương thức main()
java.lang.Exception: Đây là ngoại lệ ném từ method1()
at FillInStackTraceTest.method2(FillInStackTraceTest.java:12)
at FillInStackTraceTest.main(FillInStackTraceTest.java:18)