Throwable Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
La Throwable
classe è la superclasse di tutti gli errori e le eccezioni nel linguaggio Java.
[Android.Runtime.Register("java/lang/Throwable", DoNotGenerateAcw=true)]
public class Throwable : Exception, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[<Android.Runtime.Register("java/lang/Throwable", DoNotGenerateAcw=true)>]
type Throwable = class
inherit Exception
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ISerializable
- Ereditarietà
-
Throwable
- Derivato
- Attributi
- Implementazioni
Commenti
La Throwable
classe è la superclasse di tutti gli errori e le eccezioni nel linguaggio Java. Solo gli oggetti che sono istanze di questa classe (o una delle relative sottoclassi) vengono generati dalla macchina virtuale Java o possono essere generati dall'istruzione Java throw
. Analogamente, solo questa classe o una delle relative sottoclassi può essere il tipo di argomento in una catch
clausola.
Ai fini del controllo in fase di compilazione delle eccezioni e di qualsiasi sottoclasse di Throwable
tale classe non è anche una sottoclasse di RuntimeException
o Error
sono considerate eccezioni Throwable
controllate.
Le istanze di due sottoclassi java.lang.Error
e java.lang.Exception
, vengono usate in modo convenzionale per indicare che si sono verificate situazioni eccezionali. In genere, queste istanze vengono create in modo nuovo nel contesto della situazione eccezionale in modo da includere informazioni pertinenti (ad esempio i dati di traccia dello stack).
Un oggetto generabile contiene uno snapshot dello stack di esecuzione del relativo thread al momento della creazione. Può anche contenere una stringa di messaggio che fornisce altre informazioni sull'errore. Nel corso del tempo, un oggetto generabile può generare#addSuppressed elimina altri generabili da propagare. Infine, la generabile può contenere anche una causa: un altro generabile che ha causato la costruzione di questo generabile. La registrazione di queste informazioni causali viene definita struttura di eccezione concatenata , come la causa può, a sua volta, avere una causa e così via, portando a una "catena" di eccezioni, ognuna causata da un'altra.
Un motivo per cui un generabile può avere una causa è che la classe che genera è creata su un'astrazione a livelli inferiore e un'operazione sul livello superiore non riesce a causa di un errore nel livello inferiore. Sarebbe una progettazione non valida per consentire la generazione generata dal livello inferiore propagando verso l'esterno, perché in genere non è correlata all'astrazione fornita dal livello superiore. In questo modo, in questo modo, l'API del livello superiore verrebbe allineata ai dettagli dell'implementazione, presupponendo che l'eccezione del livello inferiore fosse un'eccezione controllata. La generazione di un'eccezione "wrapped exception" (ad esempio, un'eccezione contenente una causa) consente al livello superiore di comunicare i dettagli dell'errore al chiamante senza incorrere in una di queste carenze. Mantiene la flessibilità per modificare l'implementazione del livello superiore senza modificare l'API (in particolare, il set di eccezioni generate dai relativi metodi).
Un secondo motivo per cui un generabile può avere una causa è che il metodo che genera deve essere conforme a un'interfaccia per utilizzo generico che non consente al metodo di generare direttamente la causa. Si supponga, ad esempio, che una raccolta persistente sia conforme all'interfaccia e che la java.util.Collection Collection
relativa persistenza venga implementata su java.io
. Si supponga che gli interni del add
metodo possano generare un java.io.IOException IOException
oggetto . L'implementazione può comunicare i dettagli del IOException
chiamante durante la conformità all'interfaccia Collection
eseguendo il wrapping di in un'eccezione IOException
non selezionata appropriata. La specifica per la raccolta persistente deve indicare che è in grado di generare tali eccezioni.
Una causa può essere associata a un generabile in due modi: tramite un costruttore che accetta la causa come argomento o tramite il #initCause(Throwable)
metodo . Le nuove classi generabili che desiderano consentire l'associazione di cause devono fornire costruttori che accettano una causa e un delegato (forse indirettamente) a uno dei Throwable
costruttori che accettano una causa.
Poiché il initCause
metodo è pubblico, consente l'associazione di una causa a qualsiasi generazione generata, anche una "generazione legacy" la cui implementazione precede l'aggiunta del meccanismo di concatenamento delle eccezioni a Throwable
.
Per convenzione, la classe Throwable
e le relative sottoclassi hanno due costruttori, uno che non accetta argomenti e uno che accetta un argomento che può essere usato per produrre un String
messaggio di dettaglio. Inoltre, queste sottoclassi che potrebbero avere probabilmente una causa associata a loro dovrebbero avere due più costruttori, una che accetta una Throwable
(la causa) e una che accetta un String
(il messaggio di dettaglio) e una Throwable
(la causa).
Aggiunta nella versione 1.0.
Documentazione Java per java.lang.Throwable
.
Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .
Costruttori
Throwable() |
Costruisce un nuovo generabile con |
Throwable(IntPtr, JniHandleOwnership) |
Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
Throwable(String) |
Costruisce un nuovo generabile con il messaggio di dettaglio specificato. |
Throwable(String, Throwable) |
Costruisce un nuovo generabile con il messaggio di dettaglio e la causa specificati. |
Throwable(String, Throwable, Boolean, Boolean) |
Costruisce una nuova generazione con il messaggio di dettaglio specificato, causa, #addSuppressed eliminazione abilitata o disabilitata e traccia dello stack scrivibile abilitata o disabilitata. |
Throwable(Throwable) |
Costruisce un nuovo generabile con la causa specificata e un messaggio di dettaglio di |
Campi
is_generated |
La |
Proprietà
Cause |
Restituisce la causa di questo generabile o |
Class |
La |
Handle |
Handle all'istanza di Android sottostante. |
JniIdentityHashCode |
La |
JniPeerMembers |
La |
LocalizedMessage |
Crea una descrizione localizzata di questo oggetto generata. |
Message |
Restituisce la stringa di messaggio di dettaglio di questo oggetto generata. |
PeerReference |
La |
StackTrace |
La |
ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
Metodi
AddSuppressed(Throwable) |
Aggiunge l'eccezione specificata alle eccezioni eliminate per recapitare questa eccezione. |
Dispose() |
La |
Dispose(Boolean) |
La |
FillInStackTrace() |
Compila la traccia dello stack di esecuzione. |
Finalize() |
La |
FromException(Exception) | |
GetStackTrace() |
Fornisce l'accesso a livello di codice alle informazioni di traccia dello stack stampate da |
GetSuppressed() |
Restituisce una matrice contenente tutte le eccezioni eliminate, in genere dall'istruzione |
InitCause(Throwable) |
Inizializza la causa di questo generabile al valore specificato. |
PrintStackTrace() |
Stampa questo risultato generata e il relativo backtrace al flusso di errori standard. |
PrintStackTrace(PrintStream) |
Stampa questo elemento generata e il relativo backtrace nel flusso di stampa specificato. |
PrintStackTrace(PrintWriter) |
Stampa questo elemento generata e il relativo backtrace al writer di stampa specificato. |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. |
SetStackTrace(StackTraceElement[]) |
Imposta gli elementi di traccia dello stack che verranno restituiti da e stampati da |
ToException(Throwable) |
La |
ToString() |
La |
UnregisterFromRuntime() |
La |
Implementazioni dell'interfaccia esplicita
IJavaPeerable.Disposed() |
La |
IJavaPeerable.DisposeUnlessReferenced() |
La |
IJavaPeerable.Finalized() |
La |
IJavaPeerable.JniManagedPeerState |
La |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
La |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
La |
IJavaPeerable.SetPeerReference(JniObjectReference) |
La |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione dei tipi controllati dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
La |
GetJniTypeName(IJavaPeerable) |
La |