Was ist die Throwable-Klasse? Die Throwable-Klasse ist die Superklasse aller Fehler oder Ausnahmen in der Java-Sprache. Sie ist eine gemeinsame Klasse, die alle Ausnahmen integriert. Ihre Funktion besteht darin, die im Stapel gespeicherten Fehlerinformationen zu extrahieren.
Die Error-Klasse ist eine Unterklasse der Throwable-Klasse, einschließlich Systemausnahmen, Ausnahmen virtueller Maschinen und anderer Probleme, die vom Benutzer nicht verhindert werden können.
Die Exception-Klasse ist auch eine Unterklasse der Throwable-Klasse. Sie ist eine Ausnahme, die vom Programm selbst behandelt werden kann. Sie ist in Laufzeitausnahmen (aktiviert) und Nicht-Laufzeitausnahmen (nicht aktiviert) unterteilt. Laufzeitausnahmen können behandelt werden oder auch nicht; Nicht-Laufzeitausnahmen müssen behandelt werden.
Laufzeitausnahmen sind alle Ausnahmen der RuntimeException-Klasse und ihrer Unterklassen, z. B. NullPointerException, IndexOutOfBoundsException usw. Diese Ausnahmen sind nicht aktiviert und können im Programm erfasst oder nicht verarbeitet werden. Diese Ausnahmen werden im Allgemeinen durch Programmlogikfehler verursacht, und das Programm sollte versuchen, das Auftreten solcher Ausnahmen aus logischer Sicht zu vermeiden.
Wenn eine RuntimeException auftritt, müssen wir sie nicht behandeln, und normalerweise übernimmt die virtuelle Maschine.
Wenn eine Laufzeitausnahme auftritt und die Ausnahme nicht abgefangen und verarbeitet wird (dh es gibt keinen Fang), wirft das System die Ausnahme bis zur oberen Ebene. Wenn es sich um eine Multithread-Ausnahme handelt, wird sie von ausgelöst Thread.run(). Wenn es Single-Threaded ist, wird es von Thread.run() ausgelöst. Wenn es sich nach dem Werfen um einen Thread handelt, wird der Thread beendet. Wenn die Ausnahme vom Hauptprogramm ausgelöst wird, wird das gesamte Programm beendet. Laufzeitausnahmen sind Unterklassen der Exception-Klasse und haben auch die Eigenschaften allgemeiner Ausnahmen, das heißt, sie können von Catch-Blöcken behandelt werden. Es ist nur so, dass wir es oft nicht behandeln. Das heißt, wenn Sie Laufzeitausnahmen nicht behandeln, wird nach dem Auftreten einer Laufzeitausnahme entweder der Thread oder das Hauptprogramm beendet.
Wenn Sie nicht beenden möchten, müssen Sie alle Laufzeitausnahmen abfangen und dürfen diesen Verarbeitungsthread niemals beenden. Wenn in der Warteschlange abnormale Daten angezeigt werden, sollte die normale Verarbeitung darin bestehen, die abnormalen Daten zu verwerfen und dann das Protokoll aufzuzeichnen. Das Vorhandensein abnormaler Daten sollte die nachfolgende Verarbeitung normaler Daten nicht beeinträchtigen.
Nicht-Laufzeitausnahmen sind andere Ausnahmen als RuntimeException und gehören alle zur Exception-Klasse und ihren Unterklassen. Zum Beispiel: IOException, SQLException usw. und benutzerdefinierte Ausnahmen. Bei dieser Art von Ausnahme zwingt uns der Java-Compiler, diese Ausnahmen abzufangen und zu behandeln, andernfalls wird das Programm nicht kompiliert. Daher müssen wir bei einer solchen Ausnahme, ob es uns gefällt oder nicht, viele Catch-Blöcke schreiben, um mögliche Ausnahmen zu behandeln.