fillInStackTrace () เป็นวิธีการที่สำคัญของ โยนทิ้ง คลาสในภาษาจาวา การติดตามสแต็กมีประโยชน์ในการพิจารณาว่าข้อยกเว้นถูกส่งไปที่ใด อาจมีบางสถานการณ์ที่เราจำเป็นต้องส่งข้อยกเว้นใหม่และค้นหาว่าอยู่ที่ไหน ถูกโยนทิ้ง เราสามารถใช้ 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: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)