Friday, October 24, 2025
HomeLanguagesJavaThrowable setStackTrace() method in Java with Examples

Throwable setStackTrace() method in Java with Examples

The setStackTrace(StackTraceElement[] stackTrace) method of Throwable class is used to Set the stack trace elements to this throwable object and this stack trace will be returned by getStackTrace() and printed by printStackTrace() and related methods. This method allows the user to override the default stack trace that is either generated by fillInStackTrace() when a throwable is constructed or deserialized when a throwable is read from a serialization stream. 
If the stack trace of any Throwable is not writable then calling this method has no effect other than validating its argument.
Syntax: 
 

public void 
    setStackTrace(StackTraceElement[] stackTrace)

Parameters: This method accepts only one parameter stackTrace which is the stack trace elements to be associated with this Throwable.
Returns: This method does not returns anything.
Below programs illustrate the setStackTrace() method:
Example 1: 
 

Java




// Java program to demonstrate
// the setStackTrace () Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            testException1();
        }
 
        catch (Throwable e) {
 
            // access to the stack trace
            StackTraceElement[] trace = e.getStackTrace();
 
            System.out.println(trace[0].toString());
        }
    }
 
    // method which throws Exception
    public static void testException1()
        throws Exception
    {
 
        // create a new Exception
        Exception ex = new Exception();
 
        StackTraceElement[] trace = new StackTraceElement[] {
            new StackTraceElement("ClassNameOfExe",
                                  "methodNameOfExe",
                                  "fileNameOfExe",
                                  10)
        };
 
        // sets the stack trace elements
        ex.setStackTrace(trace);
 
        // throw the Throwable[
        throw ex;
    }
}


Output: 

ClassNameOfExe.methodNameOfExe(fileNameOfExe:10)

 

Example 2:
 

Java




// Java program to demonstrate
// the setStackTrace () Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            Exceptiontest();
        }
 
        catch (Throwable e) {
 
            // access to the stack trace
            StackTraceElement[] trace = e.getStackTrace();
 
            System.out.println("StackTraceElement length :"
                               + trace.length);
 
            for (int i = 0; i < trace.length; i++) {
 
                System.out.println("Stack Trace at index "
                                   + i + " : "
                                   + trace[i]);
            }
        }
    }
 
    // method which throws Exception
    public static void Exceptiontest()
        throws Exception
    {
 
        // create a new Exception
        ArrayStoreException ex = new ArrayStoreException();
 
        StackTraceElement[] trace = new StackTraceElement[] {
            new StackTraceElement("ClassName1", "methodName1",
                                  "fileName1", 10),
            new StackTraceElement("ClassName2", "methodName2",
                                  "fileName2", 20),
            new StackTraceElement("ClassName3", "methodName3",
                                  "fileName3", 14)
        };
 
        // sets the stack trace elements
        ex.setStackTrace(trace);
 
        throw ex;
    }
}


Output: 

StackTraceElement length :3
Stack Trace at index 0 : ClassName1.methodName1(fileName1:10)
Stack Trace at index 1 : ClassName2.methodName2(fileName2:20)
Stack Trace at index 2 : ClassName3.methodName3(fileName3:14)

 

References: 
https://docs.oracle.com/javase/10/docs/api/java/lang/Throwable.html#setStackTrace(java.lang.StackTraceElement%5B%5D)
 

RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS