Das abnormale Phänomen von Java -Programmen wird als laufende Fehler bezeichnet. Nach ihrer Natur kann es in zwei Kategorien unterteilt werden: Fehler (Fehler) und Ausnahme (Ausnahme); Sie haben eine gemeinsame übergeordnete Klasse (auch die übergeordnete Elternklasse aller Ausnahmen): Wurfweise.
Ausnahmeklassenstruktur
Fehler
Der Fehler wird durch die JVM erzeugt und ohne Verarbeitung aufgegeben. Solche Fehler beziehen sich normalerweise nicht mit dem Code und den ausgeführten Vorgängen und sind relativ schwerwiegende Probleme in der virtuellen Maschine und können nicht durch das Programm selbst gelöst werden (gemeinsame Fehler umfassen tote Schleifen, Speicherlecks usw.).
Ein häufiger Fehler ist ein Java Virtual Machine -Fehler (virtualMachineError). Wenn das JVM nicht mehr über die Speicherressourcen verfügt, die erforderlich sind, um den Vorgang fortzusetzen, wird ein OutofMemoryError angezeigt. Wenn diese Ausnahmen auftreten, entscheidet sich die Java Virtual Machine (JVM) im Allgemeinen für die Beendet von Threads.
Ausnahme
Ausnahme wird als Objekt verwendet und von Java -Programmen verworfen oder verarbeitet. Normalerweise sind die Ursachen von Ausnahmen: Der Code oder der Aufrufcode sind falsch, die Ressourcen des Betriebssystems sind nicht verfügbar, und die gemeinsame Sprachlaufbibliothek stößt auf einen Unfall.
Ausnahmen werden in Laufzeitausnahmen unterteilt, die von virtuellen Maschinen (RunTimeException, wie Null-Zeiger, Array außerhalb der Grenzen) und nicht-rechtzeitige Ausnahmen, die durch Programmunfälle (z. B. IOException) verursacht werden, generiert werden.
Laufzeitausnahme: Das Programm kann es ohne Verarbeitung erfassen und verarbeiten oder direkt werfen. Häufige Laufzeitausnahmen umfassen den Algorithmusüberlauf (der den numerischen Expressionsbereich überschreitet). Der Divisor ist Null, Speicherüberlauf, Nullzeiger, ungültige Parameter usw. Solche Ausnahmen sind Programmierfehler im Programm selbst. Sie können die laufende Richtung des Ausnahmcode anpassen, um das Programm zu halten, bis es normal endet.
Nicht-Runtime-Ausnahme: Unerwartete Ausnahmen des RunTimeException-Typs werden als nicht-Runtime-Ausnahmen bezeichnet. Aus der Sicht der Programmsyntax sind es Ausnahmen, die verarbeitet werden müssen. Wenn sie nicht verarbeitet werden, kann das Programm nicht zusammengestellt und bestanden werden; Zu den häufigen nicht rechtzeitigen Ausnahmen gehören IOException, wie z.
Hinweis: Der Unterschied zwischen Ausnahmen und Fehlern-Ausnahmen können vom Programm selbst behandelt werden, aber Fehler können nicht behandelt werden.
Überprüfbare Ausnahmen und nicht überprüfbare Ausnahmen
Java -Ausnahmen (Fehlerandexceptions) können in zwei andere Kategorien unterteilt werden, je nachdem, ob das Programm kompiliert und bestanden werden kann: Überprüfte Ausnahmen und nicht überprüfte Ausnahmen.
Kann Ausnahmen überprüfen
Die Ausnahme kann überprüft werden: Entsprechend den nicht rechteren Ausnahmen kann der Compiler die erwarteten Fehler beim Kompilieren des Programms überprüfen. Diese Ausnahme muss behandelt werden. Es gibt zwei Möglichkeiten, damit umzugehen: Die Anweisung für Try-Catch-Anweisungen erfasst die Ausnahme oder die Throws-Klausel erklärt eine Ausnahme, und der Ausnahmetyp wird außerhalb des Headers der Methode (mit Ausnahme von Throws) deklariert, und der Anrufer kann sich für die empfangene Ausnahme befassen.
Apropos diese beiden Möglichkeiten des Umgangs, wir müssen über die 5 Schlüsselwörter der Java -Ausnahmehandling sprechen: Versuchen Sie, fangen Sie schließlich, werfen Sie, werfen Sie, werfen Sie schließlich.
1. Verwenden Sie die Anweisung Try-Catch, um die Verarbeitungserfassung zu verarbeiten (der Methodenheader muss nicht deklariert werden)
Die drei Anweisungsblöcke des Versuchs, des Fangs und der schließlich können sie schließlich nicht alleine erscheinen. Die drei können zu Try-Catch/Try-Catch-final/try-final kombiniert werden.
Es kann mehrere Fangblöcke geben, und zu diesem Zeitpunkt kann einer der Catch -Blockcodes nur von oben nach unten übereinstimmen.
Schließlich ist in den drei Anweisungsblöcken höchstens eine Variable nicht zugänglich.
In diesem Abschnitt wird die Try-Catch-Kombination verwendet, um die prüfbare Ausnahme zu behandeln und die Ausnahme nach oben zu werfen: Beispiel:
public xmlreaderhdu (String xmlfile) {Super (); this.xmlfile = xmlfile; this.filename = staticconfig.umlpathprefixhdu; try {SAXReader reader = new Saxreader (); document dom = reader.read (xmlFile); root = dom.getRootelement ();2. Verwenden Sie Throws -Klausel, um das Wurf zu deklarieren (Deklarieren Sie das Wurfausnahmetyp im Kopf außerhalb des Method -Körpers: Verwenden Sie Würfe, um Ausnahme zu werfen).
Verwenden Sie zunächst den Methodenkörper, um eine Ausnahme zu werfen.
Anschließend wird die Methode außerhalb des Kopfes deklariert und wirft die Ausnahme mit Würfen nach innen.
Beispiel 1: Try-Catch macht eine Ausnahme aus
public xmlreaderhdu (String xmlfile) löst eine Ausnahme aus {Super (); this.xmlfile = xmlfile; this.fileName=StaticConfig.umlPathPrefixHDU;try {SAXReader reader=new SAXReader();Document dom=reader.read(xmlFile);root=dom.getRootElement();}catch(Exception e1) {throw new Exception(e1);}}Beispiel 2: Wurfwanderungsausnahme
private list <usecase> readucinformation () löst Ausnahme {if (e1.hascontent ()) {if (e1.element ("name"). Fehler");}}}Ausnahmen können nicht prüfen
Deaktivierbare Ausnahmen: Enthält Fehlerfehler und Laufzeit -Ausnahme -RunTimeException
Laufzeitausnahmen können während der Programmkompilierung übergeben werden. Es kann nicht durch statische Syntax erkannt werden, die Ausnahmen ausführen kann. Nur wenn die Ausnahme gefunden wird (dh je nach Laufzeitzustand, wird sie durch den Laufzeitzustand bestimmt);
Sie können wählen, ob Sie die Verarbeitung oder Anzeige erfassen können (MUSSBECURTURDECECLEAREDTOBETHORN). Diese Ausnahmen werden im Allgemeinen durch Programmlogikfehler verursacht, und Programme sollten solche Ausnahmen aus logischer Sicht so weit wie möglich vermeiden.
Zusammenfassen
In der oben genannten Analyse von Grundkenntnissen über Java -Ausnahmen in diesem Artikel hoffe ich, dass es für alle hilfreich sein wird. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!