Condividi tramite


Throwable.AddSuppressed(Throwable) Metodo

Definizione

Aggiunge l'eccezione specificata alle eccezioni eliminate per recapitare questa eccezione.

[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

Parametri

exception
Throwable

eccezione da aggiungere all'elenco di eccezioni eliminate

Attributi

Eccezioni

se throwable == this.

se throwable == null.

Commenti

Aggiunge l'eccezione specificata alle eccezioni eliminate per recapitare questa eccezione. Questo metodo è thread-safe e in genere chiamato (automaticamente e in modo implicito) dall'istruzione try-with-resources.

Il comportamento di eliminazione è abilitato <a>meno< che/em> non sia disabilitato #Throwable(String, Throwable, boolean, boolean) tramite un costruttore. Quando l'eliminazione è disabilitata, questo metodo non esegue alcuna operazione diversa da convalidare l'argomento.

Si noti che quando un'eccezione #initCause(Throwable) causa un'altra eccezione, la prima eccezione viene in genere intercettata e quindi viene generata la seconda eccezione in risposta. In altre parole, esiste una connessione causale tra le due eccezioni.

Esistono invece situazioni in cui due eccezioni indipendenti possono essere generate in blocchi di codice di pari livello, in particolare nel blocco di un'istruzione trytry-with-resources e nel blocco generato finally dal compilatore che chiude la risorsa.

In queste situazioni è possibile propagare solo una delle eccezioni generate. Nell'istruzione try-with-resources, quando sono presenti due eccezioni di questo tipo, l'eccezione proveniente dal try blocco viene propagata e l'eccezione dal finally blocco viene aggiunta all'elenco di eccezioni eliminate dall'eccezione dal try blocco. Quando un'eccezione rimuove lo stack, può accumulare più eccezioni eliminate.

È possibile che un'eccezione abbia eliminato le eccezioni mentre è causata da un'altra eccezione. Indipendentemente dal fatto che un'eccezione abbia una causa è nota semanticamente al momento della creazione, a differenza del fatto che un'eccezione elimina o meno altre eccezioni che in genere vengono determinate solo dopo la generazione di un'eccezione.

Si noti che il codice scritto dal programmatore è anche in grado di sfruttare la chiamata di questo metodo in situazioni in cui sono presenti più eccezioni di pari livello e solo una può essere propagata.

Aggiunta nella versione 1.7.

Documentazione java per java.lang.Throwable.addSuppressed(java.lang.Throwable).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal Android e usato in base ai termini descritti in 2.5 Attribution License Creative Commons 2.5 Attribution License.

Si applica a