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 <em>a meno che</em> non sia disabilitato #Throwable(String, Throwable, boolean, boolean) tramite un costruttore. Quando l'eliminazione è disabilitata, questo metodo non fa altro che convalidare il relativo 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 try blocco di un'istruzione try-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 originata 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, anche se causata da un'altra eccezione. Indipendentemente dal fatto che un'eccezione abbia una causa è semanticamente nota 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 uno può essere propagato.

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 progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a