Método arrojable addSuppressed() en Java con ejemplos

El método addSuppressed?(Excepción arrojable) de una clase arrojable que se usa para agregar la excepción a las excepciones que se suprimieron para entregar esta excepción. Este método es un método seguro para subprocesos. Este método normalmente se llama mediante la cláusula try-catch. El comportamiento de supresión de un Throwable está habilitado a menos que se deshabilite a través de un constructor y cuando la supresión está deshabilitada, este método no hace nada más que validar su argumento.
En el comportamiento predeterminado del bloque try-finally, donde tenemos dos excepciones, se suprime la excepción original y se muestra la excepción del bloque finalmente. En algunas situaciones, el bloque final se usa para cerrar el recurso y en esa situación queremos ver la excepción original, con algunas excepciones del bloque final, que cerró nuestro recurso y falló para que podamos agregar esas excepciones que fueron suprimidas a través de este método.
Si hay varias excepciones de hermanos y solo se puede propagar una, entonces se puede usar este método para propagar ese método.
Sintaxis: 
 

public final void addSuppressed?(Throwable exception)

Parámetros: este método acepta solo una excepción de parámetro que queremos agregar como una excepción suprimida.
Devoluciones: Este método no devuelve nada.
Excepciones: este método arroja las siguientes excepciones: 
 

  • IllegalArgumentException: si la excepción es arrojable; un arrojable no puede reprimirse a sí mismo.
  • NullPointerException: si la excepción es nula.

Los siguientes programas ilustran el método addSuppressed?():
Ejemplo 1: 
 

Java

// Java program to demonstrate
// the addSuppressed() Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            testException();
        }
 
        catch (Throwable e) {
 
            // get StackTraceElements
            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 testException()
        throws Exception
    {
 
        // creating a suppressed Exception
        Exception
            suppressed
            = new ArithmeticException();
 
        // creating a IOException object
        final Exception exe = new Exception();
 
        // adding suppressed Exception
        // using addSuppressed method
        exe.addSuppressed(suppressed);
 
        // throwing IOException
        throw exe;
    }
}
Producción: 

Suppressed Exceptions:
java.lang.ArithmeticException

 

Ejemplo 2:
 

Java

// Java program to demonstrate
// the addSuppressed() Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            testException();
        }
 
        catch (Throwable e) {
 
            // get StackTraceElements
            Throwable[] suppExe
                = e.getSuppressed();
 
            System.out.println("Suppressed Exceptions:");
 
            // print element of suppExe
            for (int i = 0; i < suppExe.length; i++) {
 
                System.out.println(suppExe[i]);
            }
        }
    }
 
    // method which throws Exception
    public static void testException()
        throws Exception
    {
 
        // creating a IOException object
        final Exception exe = new Exception();
 
        // adding suppressed Exception
        // using addSuppressed method
        exe.addSuppressed(new ArithmeticException());
        exe.addSuppressed(new IndexOutOfBoundsException());
        exe.addSuppressed(new ClassNotFoundException());
        exe.addSuppressed(new IOException());
 
        // throwing IOException
        throw exe;
    }
}
Producción: 

Suppressed Exceptions:
java.lang.ArithmeticException
java.lang.IndexOutOfBoundsException
java.lang.ClassNotFoundException
java.io.IOException

 

Ejemplo 3: Para mostrar IllegalArgumentException
 

Java

// Java program to demonstrate
// Exception IllegalArgumentException
// the addSuppressed() Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            ArithmeticException
                e
                = new ArithmeticException();
            e.addSuppressed(e);
        }
 
        catch (Throwable e) {
            System.out.println("Exception:" + e);
        }
    }
}
Producción: 

Exception:java.lang.IllegalArgumentException:
 Self-suppression not permitted

 

Ejemplo 4: Para mostrar NullPointerException
 

Java

// Java program to demonstrate
// Exception NullPointerException
// the addSuppressed() Method.
 
import java.io.*;
 
class GFG {
 
    // Main Method
    public static void main(String[] args)
        throws Exception
    {
 
        try {
 
            ArithmeticException
                e
                = new ArithmeticException();
            e.addSuppressed(null);
        }
 
        catch (Throwable e) {
            System.out.println("Exception:" + e);
        }
    }
}
Producción: 

Exception:java.lang.NullPointerException:
 Cannot suppress a null exception.

 

Referencias: 
https://docs.oracle.com/javase/10/docs/api/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)
 

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *