Throwable Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Die Throwable Klasse ist die Superklasse aller Fehler und Ausnahmen in der Java Sprache.
[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
- Vererbung
-
Throwable
- Abgeleitet
- Attribute
- Implementiert
Hinweise
Die Throwable Klasse ist die Superklasse aller Fehler und Ausnahmen in der Java Sprache. Nur Objekte, die Instanzen dieser Klasse (oder einer seiner Unterklassen) sind, werden vom Java virtuellen Computer ausgelöst oder können von der Java-Anweisung throw ausgelöst werden. Ebenso kann nur diese Klasse oder eine ihrer Unterklassen der Argumenttyp in einer catch Klausel sein.
Für die Zwecke der Kompilierungszeitüberprüfung von Ausnahmen Throwable und aller Unterklassen, deren Throwable Unterklasse nicht auch eine Unterklasse von oder RuntimeExceptionError als überprüfte Ausnahmen angesehen wird.
Instanzen von zwei Unterklassen werden java.lang.Errorkonventionell verwendet, um anzugeben, java.lang.Exception dass außergewöhnliche Situationen aufgetreten sind. In der Regel werden diese Instanzen im Kontext der Außergewöhnlichkeit neu erstellt, um relevante Informationen (z. B. Stapelablaufverfolgungsdaten) einzuschließen.
Ein Throwable enthält eine Momentaufnahme des Ausführungsstapels des Threads zum Zeitpunkt der Erstellung. Sie kann auch eine Meldungszeichenfolge enthalten, die weitere Informationen zum Fehler enthält. Im Laufe der Zeit kann eine werfende Funktion "Throwable#addSuppressed" andere Throwables unterdrücken, die verbreitet werden. Schließlich kann die werfende Funktion auch eine Ursache enthalten: eine weitere Auslösebar, die dazu führte, dass diese ausgelöst werden kann. Die Aufzeichnung dieser Kausalinformationen wird als verkettete Ausnahmeeinrichtung bezeichnet, da die Ursache selbst eine Ursache haben kann, usw. zu einer "Kette" von Ausnahmen, die jeweils durch eine andere verursacht werden.
Ein Grund dafür, dass ein Auslöser eine Ursache haben kann, ist, dass die Klasse, die sie auslöst, auf einer niedrigeren ebeneren Abstraktion erstellt wird, und ein Vorgang auf der oberen Ebene aufgrund eines Fehlers in der unteren Ebene fehlschlägt. Es wäre ein schlechtes Design, um den werfenden Wurf durch die untere Ebene nach außen verbreiten zu lassen, da sie in der Regel nicht mit der abstrahierten Abstraktion der oberen Ebene verbunden ist. Darüber hinaus würde die API der oberen Ebene mit den Details der Implementierung verbunden, vorausgesetzt, die Ausnahme der unteren Ebene war eine überprüfte Ausnahme. Das Auslösen einer "umschlossenen Ausnahme" (d. h. eine Ausnahme, die eine Ursache enthält) ermöglicht der oberen Ebene, die Details des Fehlers mit dem Aufrufer zu kommunizieren, ohne dass eine dieser Mängel auftritt. Sie behält die Flexibilität bei, die Implementierung der oberen Ebene zu ändern, ohne ihre API zu ändern (insbesondere die Gruppe von Ausnahmen, die von ihren Methoden ausgelöst werden).
Ein zweiter Grund dafür, dass eine Auslösemöglichkeit eine Ursache haben kann, ist, dass die Methode, die sie auslöst, einer allgemeinen Schnittstelle entsprechen muss, die nicht zulässt, dass die Methode die Ursache direkt auslösen kann. Angenommen, eine persistente Auflistung entspricht der java.util.Collection Collection Schnittstelle, und die Persistenz wird auf dem Atop java.ioimplementiert. Angenommen, die Internen der add Methode können eine java.io.IOException IOException. Die Implementierung kann die Details des IOException Aufrufers kommunizieren, während sie der Collection Schnittstelle entspricht, indem sie die IOException entsprechende deaktivierte Ausnahme umschließen. (Die Spezifikation für die persistente Sammlung sollte angeben, dass sie solche Ausnahmen auslösen kann.)
Eine Ursache kann auf zwei Arten mit einem Auslöser verknüpft werden: über einen Konstruktor, der die Ursache als Argument oder über die #initCause(Throwable) Methode verwendet. Neue ausgelöste Klassen, die Ursachen zulassen möchten, die ihnen zugeordnet werden sollen, sollten Konstruktoren bereitstellen, die eine Ursache annehmen, und Stellvertretungen (möglicherweise indirekt) an einen der Konstruktoren, die Throwable eine Ursache annehmen.
Da die initCause Methode öffentlich ist, ist sie eine Ursache, die mit jedem auslösenden Element verknüpft werden kann, auch einer "legacy throwable", deren Implementierung vor dem Hinzufügen des Ausnahmeverkettungsmechanismus vor Throwabledem Hinzufügen des Ausnahmeverkettungsmechanismus steht.
In der Konvention verfügen Klasse Throwable und ihre Unterklassen über zwei Konstruktoren, eine, die keine Argumente akzeptiert, und eine, die ein String Argument akzeptiert, das zum Erstellen einer Detailmeldung verwendet werden kann. Darüber hinaus sollten diese Unterklassen, die wahrscheinlich über eine Ursache verfügen, zwei weitere Konstruktoren haben, eine, die eine Throwable (ursache) und eine String (die Detailnachricht) und eine Throwable (die Ursache) akzeptiert.
In 1.0 hinzugefügt.
Java Dokumentation für java.lang.Throwable.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
| Name | Beschreibung |
|---|---|
| Throwable() |
Erstellt ein neues Throwable mit |
| Throwable(IntPtr, JniHandleOwnership) |
Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Laufzeit aufgerufen. |
| Throwable(String, Throwable, Boolean, Boolean) |
Erstellt eine neue, mit der angegebenen Detailnachricht, Ursache, #addSuppressed Unterdrückung aktiviert oder deaktiviert, und schreibbare Stapelablaufverfolgung aktiviert oder deaktiviert. |
| Throwable(String, Throwable) |
Erstellt ein neues Auslösen mit der angegebenen Detailmeldung und Ursache. |
| Throwable(String) |
Erstellt einen neuen Throwable mit der angegebenen Detailmeldung. |
| Throwable(Throwable) |
Erstellt eine neue auslösende Funktion mit der angegebenen Ursache und einer Detailmeldung von |
Felder
| Name | Beschreibung |
|---|---|
| is_generated |
Gibt an, ob diese Ausgelöste durch die Bindung generiert wurde. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Cause |
Gibt die Ursache dieses Auslösens zurück oder |
| Class |
Ruft die Laufzeitklasse dieses Auslösens ab. |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. |
| JniIdentityHashCode |
Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist. |
| JniPeerMembers |
Ruft die JNI-Metadaten ab, die zum Aufrufen von Mitgliedern dieses Java Peers verwendet werden. |
| LocalizedMessage |
Erstellt eine lokalisierte Beschreibung dieses Auslösens. |
| Message |
Gibt die Detailmeldungszeichenfolge dieses auslösenden Werts zurück. |
| PeerReference |
Ruft den JNI-Objektverweis für diesen Java Peer ab. |
| StackTrace |
Ruft eine Zeichenfolgendarstellung der Stapelablaufverfolgung für diese auslösende Funktion ab. |
| ThresholdClass |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. |
| ThresholdType |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. |
Methoden
| Name | Beschreibung |
|---|---|
| AddSuppressed(Throwable) |
Fügt die angegebene Ausnahme an die Ausnahmen an, die unterdrückt wurden, um diese Ausnahme zu übermitteln. |
| Dispose() |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. |
| Dispose(Boolean) |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. |
| FillInStackTrace() |
Füllt die Ausführungsstapelablaufverfolgung aus. |
| Finalize() |
Gibt Ressourcen frei, bevor dieser Java Peer erneut beansprucht wird. |
| FromException(Exception) | |
| GetStackTrace() |
Bietet programmgesteuerten Zugriff auf die Stapelablaufverfolgungsinformationen, die von |
| GetSuppressed() |
Gibt ein Array zurück, das alle Ausnahmen enthält, die normalerweise von der |
| InitCause(Throwable) |
Initialisiert die Ursache dieses Auslösens für den angegebenen Wert. |
| PrintStackTrace() |
Druckt diesen Auslöser und seine Rückverfolgung auf den Standardfehlerdatenstrom. |
| PrintStackTrace(PrintStream) |
Druckt diesen throwable und dessen Rückverfolgung auf den angegebenen Druckdatenstrom. |
| PrintStackTrace(PrintWriter) |
Druckt diesen auswerfbaren Ausdruck und seinen Rückgriff auf den angegebenen Druckschreiber. |
| SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. |
| SetStackTrace(StackTraceElement[]) |
Legt die Stapelablaufverfolgungselemente fest, die von |
| ToException(Throwable) |
Gibt die verwaltete Ausnahme zurück, die dem angegebenen Java ausgelöst werden kann. |
| ToString() |
Wandelt diesen Wert in eine Zeichenfolge um. |
| UnregisterFromRuntime() |
Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IJavaPeerable.Disposed() |
Benachrichtigt die Interoplaufzeit, dass dieser verwaltete Peer verworfen wurde. |
| IJavaPeerable.DisposeUnlessReferenced() |
Gibt diesen Java Peer frei, es sei denn, er wird von einem anderen verwalteten Verweis beibehalten. |
| IJavaPeerable.Finalized() |
Benachrichtigt die Interoplaufzeit, dass dieser verwaltete Peer abgeschlossen wurde. |
| IJavaPeerable.JniManagedPeerState |
Ruft den Zustand ab, der die Beziehung zwischen diesem verwalteten Peer und seinem JNI-Verweis beschreibt. |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Legt den Interop-Identitätshashcode für diesen Java Peer fest. |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Legt den verwalteten und JNI-Peerstatus für diesen Java Peer fest. |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Legt den JNI-Objektverweis fest, der von diesem verwalteten Peer verwendet wird. |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ruft den JNI-Namen des Typs der Instanz |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
| JavaCast<TResult>(IJavaObject) |
Die |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |