Java Throwable vs. Ausnahmeklasse

Shubham Vora 12 Oktober 2023
  1. Einführung in die Throwable-Klasse in Java
  2. Einführung in die Klasse Exception in Java
  3. Welche Klasse sollen wir verwenden, Throwable oder Exception
Java Throwable vs. Ausnahmeklasse

Dieser Artikel wird uns beibringen, wann die Klassen Throwable und Exception in Java zu verwenden sind. Beide Klassen haben ihre Konstruktoren und Methoden, um Fehler und Ausnahmen zu behandeln.

Zuerst werden wir die Einführung von Throwable und Exception beider Klassen sehen, und danach werden wir den Unterschied zwischen beiden lernen.

Einführung in die Throwable-Klasse in Java

In der Hierarchie der Klassen java.lang ist die Klasse Throwable die Eltern- oder Oberklasse der Klassen Error und Exception. Das bedeutet, dass Error und Exception von der Throwable-Klasse in Java geerbt werden.

Es kommt zu dem Schluss, dass die Klasse Throwable alle Fehler und Ausnahmen abfangen kann, die von der Java Virtual Machine erzeugt werden, entweder Stack-Trace-Fehler oder Kompilierungs- oder Laufzeitausnahmen.

Darüber hinaus implementiert die Klasse Throwable die Schnittstelle Serializable in der Bibliothek java.lang, wo sie definiert ist.

Benutzer können die Definition der Klasse Throwable unten sehen.

public class Throwable extends Object implements Serializable

In der obigen Klassendefinition können Benutzer sehen, dass die Klasse Throwable die Klasse Object erbt und die Schnittstelle Serializable implementiert.

Syntax von Throwable:

try {
  // some code
} catch (Throwable e) {
  // handle errors or exceptions
}

Die Klasse Throwable enthält die überladenen Konstruktoren, die im Folgenden erklärt werden.

Konstrukteure

Throwable() Dieser Konstruktor erstellt eine neue Instanz von Throwable mit einer Standardfehlermeldung.
Throwable(String errorMessage) Dieser Konstruktor erstellt eine neue Instanz von Throwable mit einer errorMessage-Meldung.
Throwable(String errorMessage, Throwable errorCause) Dieser Konstruktor übernimmt auch die Ursache der Fehlermeldung und erstellt eine neue Instanz von Throwable mit errorMessage und errorCause.
Throwable(Throwable errorUrsache) Dieser Konstruktor erstellt die neue Instanz von Throwable mit einer bestimmten Ursache, die als Parameter übergeben wird.

Methoden

Hier haben wir einige Methoden der Klasse Throwable erklärt.

toString() Es gibt die Beschreibung des Fehlers im String-Format zurück.
getMessage() Es gibt die Fehlermeldung im String-Format zurück.
getCause() Es gibt die Ursache der aktuellen Instanz eines Throwable zurück.
getLocalizedMessage() Es gibt die lokalisierte Beschreibung von Throwable zurück.
getStackTrace() Es liefert Informationen über den Stack-Trace.
printStackTrace() Es druckt die aktuelle Instanz von Throwable.
setStackTrace(StackTraceElement[] stackTrace) Es ermöglicht die Einstellung des Stack-Trace-Elements, das von der Methode getStackTrace() zurückgegeben wird.
initCause(Throwable cause) Es ermöglicht Benutzern, die Ursache des aktuellen Throwable zu initialisieren.

Fehler

Die Klasse Errors enthält Fehler, die die Ausführung des Programms stoppen.

StackOverflowError Es tritt auf, wenn ein Stack- oder Heap-Überlauf auftritt.
AssertionError Dies geschieht aufgrund eines Behauptungsfehlers.
VirtualMachineError Es speichert alle Fehler in der Java Virtual Machine.
LinkageError Es tritt aufgrund eines Verknüpfungsproblems auf.
OutOfMemoryError Es tritt auf, weil auf Ihrem Gerät wenig Arbeitsspeicher vorhanden ist oder die JVM nicht mehr genügend Arbeitsspeicher hat.

Einführung in die Klasse Exception in Java

Ausnahmen sind in Java unerwünschte Ereignisse, die zur Laufzeit oder Kompilierzeit auftreten. Die Ausnahmen können zur Kompilierzeit abgefangen werden, die als geprüfte Ausnahmen bezeichnet werden, und Ausnahmen können nur zur Laufzeit abgefangen werden, die als ungeprüfte Ausnahmen bezeichnet werden.

Syntax von Throwable:

try {
  // some code
} catch (Exception e) {
  // handle Exceptions only
}

Hier haben wir einige Arten von Ausnahmen in Java definiert.

RuntimeException Alle Klassen ungeprüfter Ausnahmen erben es.
NullPointerException Es tritt aufgrund eines Null- oder undefinierten Werts auf.
ArithmeticException Es tritt aufgrund des Fehlschlagens einer arithmetischen Operation auf.
ArrayIndexOutOfBoundsException Es tritt auf, wenn wir versuchen, auf einen Array-Index zuzugreifen, der größer als seine Länge ist.
NoSuchMethodException Es tritt auf, wenn die Methode nicht definiert ist.
IOException Es tritt aufgrund des Ausfalls von Eingabe-/Ausgabevorgängen auf.
ClassNotFoundException Es tritt auf, wenn die Klasse nicht definiert ist.
SQLException Der Ausfall des Datenbankbetriebs ist die Ursache dieser Ausnahme.

Programmierer können auch Ausnahmen definieren, indem sie die Klasse Exception von Java erben.

Welche Klasse sollen wir verwenden, Throwable oder Exception

Wenn wir uns die Syntax der Klassen Throwable und Exception ansehen, sieht es auf den ersten Blick ähnlich aus, da wir beide mit dem try-catch-Block verwenden.

Die Instanz der Klasse Throwable kann die Fehler und Ausnahmen abfangen, da sie eine Unterklasse von Throwable sind, aber die Instanz von Exceptions kann nur die Ausnahmen abfangen, die im Programm auftreten.

In normalen Java-Anwendungen treten selten Fehler wie LinkageError, VirtualMachineError, OutOfMemoryError usw. auf. Die Ausnahme tritt hauptsächlich aufgrund des Fehlers des Benutzers auf.

Daher ist es eine bewährte Methode, die Instanz der Klasse Exception anstelle der Klasse Throwable zu verwenden.

Shubham Vora avatar Shubham Vora avatar

Shubham is a software developer interested in learning and writing about various technologies. He loves to help people by sharing vast knowledge about modern technologies via different platforms such as the DelftStack.com website.

LinkedIn GitHub

Verwandter Artikel - Java Exception