VOOZH about

URL: https://www.geeksforgeeks.org/java/throwable-printstacktrace-method-in-java-with-examples/

⇱ Throwable printStackTrace() method in Java with Examples - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Throwable printStackTrace() method in Java with Examples

Last Updated : 24 Jan, 2026

The printStackTrace() method in Java is widely used for debugging exceptions. It prints detailed information about an exception, helping developers understand where and why an error occurred during program execution.

Output:

java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 2
at GFG.main(GFG.java:4)

Explanation:

  • An invalid array index is accessed, throwing ArrayIndexOutOfBoundsException.
  • printStackTrace() prints the exception type, message, and call sequence.
  • This provides a quick view of where the error occurred.

Syntax

public void printStackTrace()

Constructor of printStackTrace()

The printStackTrace() method provides several overloaded forms that allow developers to print exception stack trace details in different ways

1. printStackTrace() Method

The printStackTrace() method belongs to the java.lang.Throwable class. It prints the complete stack trace of an exception, including:

  • Exception type
  • Exception message
  • Method call sequence
  • Class names
  • Line numbers where the exception occurred

By default, the output is printed to the standard error stream.

Output:

java.lang.Exception
at GFG.testException1(GFG.java:12)
at GFG.main(GFG.java:4)
Caused by: java.lang.ArrayIndexOutOfBoundsException
at GFG.testException1(GFG.java:10)

Explanation:

  • An ArrayIndexOutOfBoundsException is explicitly created.
  • This exception is set as the cause of another Exception using initCause().
  • When printStackTrace() is called, Java prints the main exception first.
  • The Caused by section follows, helping identify the root cause in chained exceptions.

Syntax

public void printStackTrace()

Return Value: This method do not returns anything.

2. printStackTrace(PrintStream s) Method

This overloaded version prints the stack trace to a specified PrintStream instead of System.err. It provides flexibility to redirect exception output.


Output
java.lang.Exception: System is Down
 at GFG.testException1(File.java:35)
 at GFG.main(File.java:15)

Explanation:

  • A custom PrintStream object is created and passed to printStackTrace().
  • The exception message and stack trace are written to the specified stream instead of System.err.
  • This method is useful for logging frameworks or redirecting error output to files or other destinations.

Syntax

public void printStackTrace(PrintStream s)

  • Parameter: "s (PrintStream)" ->Destination where the stack trace will be printed.
  • Return Value: This method do not returns anything.

3. printStackTrace(PrintWriter s) Method

This method prints the stack trace to a PrintWriter, often used with StringWriter for logging or storing errors as text. It is especially useful for web applications and log aggregation systems.


Output
Error:
java.lang.ArithmeticException: / by zero
 at GFG.main(File.java:17)

Explanation:

  • An ArithmeticException is thrown when a division by zero occurs.
  • The stack trace is captured using a PrintWriter wrapped around a StringWriter.
  • This converts the stack trace into a string, making it easy to log or include in error reports.

Syntax

public void printStackTrace(PrintWriter s)

  • Parameter: "s (PrintWriter)"->Writer object used to store or output the stack trace.
  • Return Value: This method do not returns anything.
Comment