Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ควรใช้เมธอด fillInStackTrace () ใน Java เมื่อใด


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)