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; } }
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; } }
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); } } }
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); } } }
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