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 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 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()