Und in der heutigen Lektion, Wir werden etwas über Ausnahmen lernen. Was sind Ausnahmen? Nun, es sind außergewöhnliche Ereignisse. Es ist ein Ereignis, das während der Ausführung eines Programms auftritt. Und was es tut, ist, es stört den normalen Ablauf der Programmanweisungen. Und wenn dieser Fehler innerhalb einer Methode auftritt, die Methode erstellt ein Objekt, und übergibt es an das Laufzeitsystem. Dieses Objekt, das als Ausnahmeobjekt bezeichnet wird, enthält Informationen über den Fehler, einschließlich des Typs und des Zustands des Programms wann der Fehler aufgetreten ist. Erstellen eines Ausnahmeobjekts und Weiterleitung an das Laufzeitsystem, wird als Auslösen der Ausnahme bezeichnet. In den alten Tagen, Das Programm würde einen Systemabbild seines Speichers erzeugen. Nachdem eine Methode eine Ausnahme ausgelöst hat, das Laufzeitsystem versucht, etwas zu finden, um damit umzugehen. Die Menge möglicher Dinge zur Behandlung der Ausnahme, ist die geordnete Liste der Methoden, die aufgerufen wurden, um die Methode abzurufen, bei der der Fehler aufgetreten ist. Warum verwenden wir Ausnahmen? Nun, wir wollen den Fehlerbehandlungscode trennen aus dem regulären Code. Ausnahmen ermöglichen es uns, die Details dessen, was zu tun ist, zu trennen wenn etwas Außergewöhnliches passiert, und wir trennen das von der Hauptlogik eines Programms. Es macht unseren Code viel einfacher zu lesen. Arten von Ausnahmen beinhalten, was passiert, wenn die Datei Wir versuchen zu öffnen, kann nicht geöffnet werden? Was passiert, wenn die Länge einer Datei nicht ermittelt werden kann? Was passiert, wenn nicht genügend Arbeitsspeicher zugewiesen werden kann? Was passiert, wenn ein Lesevorgang fehlschlägt? Was passiert, wenn die Datei nicht geschlossen werden kann? Ohne Ausnahmen müssten wir den Fehlerbehandlungscode mischen mit dem Code, der tatsächlich funktioniert die Logik des Programms. Also öffnen wir die Datei, wenn die Datei geöffnet wird, Wir bestimmen dann die Länge der Datei. Wenn die Dateilänge gut ist, dann weisen wir so viel Speicher zu. Wenn wir genug Speicher haben, dann lesen wir die Datei. Wie Sie sehen können, gibt es so viel Fehlererkennung im Code, dass der Code lang wird, und schwer nachzuvollziehen, mit einer Reihe von verschachtelten if-Anweisungen. Wenn es so viele Fehlerprüfungen im Code gibt, wir verlieren den logischen Fluss des Codes aus den Augen, und es macht es schwer zu debuggen, und genau verstehen, was der Code tut. Wir können Fehlerarten gruppieren und unterscheiden, und weil alle Ausnahmen innerhalb eines Programms ausgelöst werden Objekte sind, wird die Gruppierung einfach, und es ist ein natürliches Ergebnis der Klassenhierarchie auf dem Java aufgebaut hat. Eine Methode kann eine Ausnahme basierend auf ihrer Gruppe abfangen, oder allgemeiner Typ, indem Sie eine der Ausnahmen angeben Superklassen in der catch-Anweisung. Als Nächstes sehen wir uns die try-catch-Anweisung an. Ausnahmehandler sollten jedoch so spezifisch wie möglich sein. Bestimmen Sie die Art der Ausnahme, bevor Sie sich für die beste Wiederherstellungsstrategie entscheiden. Indem bestimmte Fehler nicht abgefangen werden, Handler müssen jede Möglichkeit berücksichtigen. Und wenn wir zu allgemeine Exception-Handler haben, das kann den Code fehleranfälliger machen, durch das Abfangen und Behandeln von Ausnahmen die vom Programmierer nicht erwartet wurden, und dafür war der Handler nicht vorgesehen. Eine Ausnahme ist eine Art Ereignis. Es tritt während des Programmablaufs auf, und es stoppt den normalen Ablauf des Programms. Wenn der Fehler auftritt, erstellt die Methode ein Objekt, und übergibt es an das Laufzeitsystem. Es gibt viele Dinge, die hinter den Kulissen ablaufen, aber wir können diese Ausnahmen behandeln, und erzeugen Sie eine Ausgabe, die erklärt, was passiert. Nun, es gibt eine Reihe verschiedener möglicher Ausnahmen, und wir können jeden einzelnen von ihnen handhaben, und was wir sehen werden, ist, wie die Ausnahme behandelt wird, von der wir wissen, dass sie passieren könnte. Ausnahmen können die Details dessen, was zu tun ist, trennen wenn etwas Außergewöhnliches passiert, und es hält es von der Hauptlogik des Programms getrennt. Und da alle diese Ausnahmen Objekte sind, Wir können sie gruppieren oder kategorisieren, sodass sie Sinn ergeben. Wenn wir diese Ausnahmen schreiben, wir wollen so spezifisch wie möglich sein. Und schauen wir uns genau an, wovon ich spreche. Ich scrolle nach unten, und hier ist unser Programm. Es ist ein einfaches Programm, ich erstelle eine Ganzzahl, genannt dividiere durch null, und ich setze es gleich null. Dann habe ich einen Try-Catch-Block, der in Zeile 45 beginnt. Die Idee hier ist, dass bevor ich durch Null dividiere, Es wird getestet, ob die Teilung funktioniert. Wenn es eine arithmetische Ausnahme gibt, es wird die arithmetische Ausnahme ausgeben, und eine Nachricht von dem, was ich zu tun versuchte. Und dann ein letzter Block, der sagt: das wird passieren, egal was passiert. Lassen Sie uns dieses Programm ausführen und sehen, was passiert. Jetzt, als ich es zum ersten Mal ausführte, funktionierte es perfekt, denn meine Division durch Null ist fünf geteilt durch eins. Was passiert ist, wenn ich die Eins in eine Null ändere, und ich versuche, durch Null zu teilen, das ist die Codezeile das wird die Ausnahme erzeugen. Das Programm wird versuchen, die Division durchzuführen. Wenn die Ausnahme auftritt, es fängt diese arithmetische Ausnahme ab, und druckt dann die Nachricht aus. Lass es laufen und sehen was passiert. Wir haben versucht, durch null zu teilen, fünf geteilt durch null. Das Programm hat unseren Fehler erkannt und gesagt: die arithmetische Ausnahme durch Null ist das Problem. Und schließlich wird der Codeblock immer ausgeführt, und die Variable zum Teilen durch Null wurde nicht geändert. Was hier wichtig zu wissen ist, ist, dass das Programm erfolgreich abgeschlossen wurde, und der Ausdruck ist das, was überprüft werden muss um zu sehen, was schief gelaufen sein könnte. Jetzt wissen Sie, wie Ausnahmen behandelt werden können bevor sie ein Problem in Ihrem Programm verursachen.