Use the fillInStackTrace() method to rethrow a Throwable type of exceptional condition in your code. This is useful if you want to rethrow a exception that occurred while using a method or creating a Object but want to avoid the stack trace from these calls. The intention is to show the stack trace starting form this method or error condition. This a similar to creating a new Object of type Throwable and throwing it as the exception. This happens because when the call to fillInstackTrace method is made, it returns a new Object of type Throwable filled with the execution stack trace.
Example code:
import java.io.IOException;
public class testExceptions
{
//Example of fillInStackTrace
void method1() throws Throwable
{
throw new Throwable ("Throwable Exception in method1");
}
void method2() throws Throwable
{
//throw new IOException ("Exception in method2");
try
{
method1();
}
catch(Throwable th)
{
throw th;
throw th.fillInStackTrace();
//similar to
throw new Throwable();
}
}
//Example of fillInStackTrace
public static void main(String args[]) throws Throwable
{
new testExceptions().method2();
}
}