The getSuppressed() method of Throwable class used to return an array containing all of the exceptions that were suppressed to deliver this exception typically this suppression done by the try-with-resources statement. In order to deliver Exception If no exceptions were suppressed or suppression is disabled, an empty array of suppressed exception is returned. Any changes to the returned array do not affect future calls to this method.
Syntax:
public final Throwable[] getSuppressed()
Parameters: This method does not accepts anything as a parameter.
Returns: This method returns return an array containing all of the exceptions that were suppressed.
Below programs illustrate the getSuppressed() method of Throwable class:
Example 1:
Java
// Java program to demonstrate // the getSuppressed() Method. import java.io.*; class GFG { // Main Method public static void main(String[] args) throws Exception { try { testException1(); } catch (Throwable e) { // get Suppressed exception // using getSuppressed() method Throwable[] suppExe = e.getSuppressed(); // print element of suppExe for ( int i = 0 ; i < suppExe.length; i++) { System.out.println("Suppressed Exceptions:"); System.out.println(suppExe[i]); } } } // method which throws Exception public static void testException1() throws Exception { // creating a suppressed Exception Exception suppressed = new ArrayIndexOutOfBoundsException(); // creating a IOException object final IOException ioe = new IOException(); // adding suppressed Exception ioe.addSuppressed(suppressed); // throwing IOException throw ioe; } } |
Suppressed Exceptions: java.lang.ArrayIndexOutOfBoundsException
Example 2:
Java
// Java program to demonstrate // the getSuppressed() Method. import java.io.*; class GFG { // Main Method public static void main(String[] args) throws Exception { try { // add the numbers addPositiveNumbers( 2 , - 1 ); } catch (Throwable e) { // get Suppressed exception // using getSuppressed() method Throwable[] suppExe = e.getSuppressed(); // print element of suppExe System.out.println("Suppressed Exception Array" + " length = " + suppExe.length); } } // method which adds two positive number public static void addPositiveNumbers( int a, int b) throws Exception { // if Numbers are Positive // then add or throw Exception if (a < 0 || b < 0 ) { throw new Exception("Numbers are not Positive"); } else { System.out.println(a + b); } } } |
Suppressed Exception Array length = 0
References: https://docs.oracle.com/javase/10/docs/api/java/lang/Throwable.html#getSuppressed()