Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 fillInStackTrace() 메서드를 언제 사용합니까?

<시간/>

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)
의 FillInStackTraceTest.method2(FillInStackTraceTest.java:12)의 method1()에서 throw됩니다.