HOWTO · Java
Re-Throw-Ausnahme in Java
Dieses Tutorial zeigt, wie Sie eine Ausnahme in Java erneut auslösen.
In Java ist throw das am häufigsten verwendete Schlüsselwort, um entweder eine eingebaute Ausnahme oder eine -benutzerdefinierte Ausnahme auszulösen, aber manchmal müssen wir dieselbe Ausnahme durch catch werfen Block.
Diese Situation wird als erneutes Auslösen einer Ausnahme bezeichnet. In diesem Tutorial-Artikel lernen wir die erneut ausgelöste Ausnahme kennen und führen diese Aufgabe aus, ohne Änderungen am ursprünglichen Stack-Trace vorzunehmen.
Demonstration des erneuten Auslösens einer Ausnahme in Java
Wenn Sie mit sensiblen Programmen arbeiten, z. B. die Datenbank manipulieren, ist es wichtig, die Ausnahme zu verfolgen, bevor Sie sie an eine höhere Ebene weitergeben.
Wir müssen einige Aktivitäten am catch-Block ausführen und die Ausnahme erneut auslösen, damit die höhere Ebene des Programms benachrichtigt wird, dass eine Ausnahme im System auftritt.
In unserem Beispiel unten werden wir eine Ausnahme erneut auslösen, wenn ein string-Wert auf null gesetzt wird. Der Code für diesen Zweck sieht wie folgt aus:
public class JavaException {
public static void main(String args[]) {
String Name = null;
try {
if (Name.equals("Mark"))
System.out.println("Matched"); // This will cause NullPointerException
} catch (Exception e) {
throw e;
}
}
}
Im obigen Code Fence setzen wir zuerst den Wert einer string-Variablen Name auf null. Danach haben wir den Exception-Handler von Java try{ ... } catch { ... } verwendet und darin den Wert string mit einem anderen string verglichen.
Dies führt nun zu einem NullPointerException-Fehler. Nachdem Sie den obigen Beispielcode ausgeführt haben, erhalten Sie die folgende Ausgabe in Ihrer Konsole.
Exception in thread "main" java.lang.NullPointerException
at javacodes.JavaException.main(JavaException.java:8)
Wenn wir uns den Code des Beispiels ernsthaft ansehen, werden wir sehen, dass unser Code jede Ausnahme erneut auslöst, die abgefangen wird, und wir erhalten den ursprünglichen Stack-Trace, ohne Änderungen vorzunehmen.