Compartir a través de


Throwable.AddSuppressed(Throwable) Método

Definición

Anexa la excepción especificada a las excepciones que se han suprimido para entregar esta excepción.

[Android.Runtime.Register("addSuppressed", "(Ljava/lang/Throwable;)V", "")]
public void AddSuppressed (Java.Lang.Throwable exception);
[<Android.Runtime.Register("addSuppressed", "(Ljava/lang/Throwable;)V", "")>]
member this.AddSuppressed : Java.Lang.Throwable -> unit

Parámetros

exception
Throwable

excepción que se va a agregar a la lista de excepciones suprimidas

Atributos

Excepciones

si throwable == this.

si throwable == null.

Comentarios

Anexa la excepción especificada a las excepciones que se han suprimido para entregar esta excepción. Este método es seguro para subprocesos y normalmente lo llama (automáticamente e implícitamente) por la tryinstrucción -with-resources.

El comportamiento de supresión se habilita <a>menos< que se deshabilite/em> #Throwable(String, Throwable, boolean, boolean) a través de un constructor. Cuando la supresión está deshabilitada, este método no hace nada más que validar su argumento.

Tenga en cuenta que cuando una excepción #initCause(Throwable) produce otra excepción, la primera excepción suele detectarse y, a continuación, se produce la segunda excepción en respuesta. En otras palabras, hay una conexión causal entre las dos excepciones.

En cambio, hay situaciones en las que se pueden producir dos excepciones independientes en bloques de código del mismo nivel, en particular en el try bloque de una tryinstrucción -with-resources y el bloque generado por finally el compilador que cierra el recurso.

En estas situaciones, solo se puede propagar una de las excepciones producidas. En la tryinstrucción -with-resources, cuando hay dos excepciones de este tipo, la excepción que se origina en el try bloque se propaga y la excepción del finally bloque se agrega a la lista de excepciones suprimidas por la excepción del try bloque. Como excepción desenreda la pila, puede acumular varias excepciones suprimidas.

Es posible que una excepción haya suprimido excepciones mientras también se debe a otra excepción. Si una excepción tiene una causa semánticamente conocida en el momento de su creación, a diferencia de si una excepción suprimirá otras excepciones que normalmente solo se determinan después de iniciar una excepción.

Tenga en cuenta que el código escrito por el programador también puede aprovechar las ventajas de llamar a este método en situaciones en las que hay varias excepciones del mismo nivel y solo se puede propagar una.

Agregado en la versión 1.7.

Documentación de Java para java.lang.Throwable.addSuppressed(java.lang.Throwable).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a