Home >Java >javaTutorial >When to use fillInStackTrace() method in Java?

When to use fillInStackTrace() method in Java?

WBOY
WBOYforward
2023-08-19 15:01:091433browse

When to use fillInStackTrace() method in Java?

In Java, fillInStackTrace() is an important method in the Throwable class. Stack traces can help determine where exactly an exception was thrown. In some cases we may need to rethrow the exception and find out where it was rethrown, we can use the fillInStackTrace() method in this case.

Grammar

<strong>public Throwable fillInStackTrace()</strong>

Example

Chinese translation is:

Example

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(); // <strong>calling fillInStackTrace() method</strong>
      }
   }
   public static void main(String[] args) throws Throwable {
      try {
         method2();
      } catch (Exception e) {
         System.err.println("Caught Inside Main method()");
         e.printStackTrace();
      }
   }
}

Output

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)

The above is the detailed content of When to use fillInStackTrace() method in Java?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete