Vorteile von Ausnahmen in Java Programmiersprache
Eine Ausnahme ist ein Fall, der während der Durchführung eines Programms auftritt, das den normalen Fluß der Anweisungen des Programms stört. Vorteil 1: Trennen, Code Störung-Anfassend "vom regelmäßigen" CodeAusnahmen liefern die Mittel, die Details von was zu trennen zu tun, wenn etwas aus dem Üblichen heraus von der MAIN LOGIC eines Programms geschieht. In der traditionellen Programmierung führen Fehlererkennung, der Bericht und die Behandlung häufig zu verwirrenden Isolationsschlauchcode. Z.B. betrachten Sie die Pseudocodemethode hier, die eine gesamte Akte in Gedächtnis liest: readFile { Am ersten flüchtigen Blick scheint diese Funktion genug einfach, aber sie ignoriert alle folgenden möglichen Störungen: • Was geschieht, wenn die Akte nicht geöffnet werden kann? Um solche Fälle anzufassen, muß die readFile Funktion mehr Code haben zum der Fehlererkennung zu tun und berichten und anfassen. Wie hier ist ein Beispiel von, was die Funktion aussehen konnte: errorCodeType readFile { öffnen Sie die Akte; Es gibt soviel die Fehlererkennung und berichtet, und hier geht zurück, daß die ursprünglichen sieben Linien des Codes in der Unordnung verloren sind. Schlechter schon, ist der logische Fluß des Codes auch verloren worden und ihn schwierig so gebildet zu erklären, ob der Code die rechte Sache tut: Wird die Akte wirklich geschlossen gewesen, wenn die Funktion genügend Gedächtnis zuteilen nicht kann? Es ist sogar schwieriger, sicherzugehen, daß der Code fortfährt, die rechte Sache zu tun, wenn Sie die Methode drei Monate nach Schreiben es ändern. Viele Programmierer lösen dieses Problem, indem sie einfach iterrors ignorieren, werden berichtet, wenn ihre Programme zusammenstoßen. Ausnahmen ermöglichen Ihnen, den Hauptfluß Ihres Codes zu schreiben und die Sonderfälle anderwohin zu beschäftigen. Wenn die readFile Funktion Ausnahmen anstelle von den traditionellen Störung-Management Techniken verwendete, würde sie mehr wie das folgende schauen: readFile { Merken Sie, daß Ausnahmen Ihnen nicht die Bemühung des Erledigens der Arbeit des Ermittelns, des Berichtens und der Behandlung über von von Störungen ersparen, aber sie helfen Ihnen, die Arbeit effektiv zu organisieren. Vorteil 2: Fortpflanzen von von Störungen herauf den Anruf-StapelEin zweiter Vorteil von Ausnahmen ist die Fähigkeit, die Störung fortzupflanzen, die herauf den Anrufstapel von Methoden berichtet. Nehmen Sie an, daß die readFile Methode die vierte Methode in einer Reihe von den genisteten Methode Anrufen ist, die durch das Hauptprogramm gebildet werden: method1 benennt method2, das method3 benennt, das schließlich readFile benennt: method1 { method2 { method3 { Nehmen Sie auch an, daß method1 die einzige Methode ist, die an den Störungen interessiert wird, die innerhalb readFile. der traditionellen Störung-Mitteilung Technikkraft method2 und method3 auftreten konnten, zum der Störung Codes fortzupflanzen, die durch readFile hohes der Anrufstapel zurückgebracht wurden, bis die Störung Codes schließlich method1the nur Methode erreichen, die an ihnen interessiert ist: method1 { errorCodeType method2 { errorCodeType method3 { Rufen Sie zurück, daß das Java Laufzeitklima rückwärts durch den Anrufstapel sucht, um alle mögliche Methoden zu finden, die interessiert sind, an, eine bestimmte Ausnahme anzufassen. Eine Methode kann alle mögliche Ausnahmen ducken, die innerhalb sie geworfen werden, dadurch sieläßt sieläßt eine Methode weit herauf den Anrufstapel sich ihn verfangen. Folglich nur die Methoden, die für Störungen sich interessieren, müssen um das Ermitteln von von Störungen sich sorgen: method1 { method2 wirft Ausnahme { method3 wirft Ausnahme { Jedoch während der Pseudocode darstellt, erfordert das Ducken einer Ausnahme etwas Bemühung von seiten der Zwischenhändlermethoden. Alle mögliche überprüften Ausnahmen, die innerhalb einer Methode geworfen werden können, müssen in seiner THRowsklausel spezifiziert werden. Vorteil 3: Gruppierung und Fehlerarten unterscheidenWeil alle Ausnahmen, die innerhalb eines Programms geworfen werden, Gegenstände sind, ist die Gruppierung oder das Kategorisieren von Ausnahmen ein natürliches Resultat der Kategorie Hierarchie. Ein Beispiel einer Gruppe in Verbindung stehender Ausnahmekategorien in der Java Plattform sind die definiert in java.ioIOException und in seinen Nachkommen. IOException ist das allgemeinste und stellt irgendeine Art Störung dar, die auftreten kann, wenn es I/O durchführt. Seine Nachkommen stellen spezifischere Störungen dar. Z.B. bedeutet FileNotFoundException, daß eine Akte nicht auf Scheibe sich befinden könnte. Eine Methode kann spezifische Zufuhren schreiben, die eine sehr spezifische Ausnahme anfassen können. Die FileNotFoundException Kategorie hat keine Nachkommen, also kann die folgende Zufuhr nur eine Art Ausnahme anfassen: Verriegelung (FileNotFoundException e) { Eine Methode kann eine Ausnahme sich verfangen, die auf seiner Gruppe oder allgemeinen Art, indem sie irgendwelche der superclasses der Ausnahme in der Verriegelung Aussage basiert spezifiziert. Z.B. um sich alle I/O Ausnahmen, unabhängig davon ihre spezifische Art zu verfangen, spezifiziert eine Ausnahmezufuhr ein IOException Argument: Verriegelung (IOException e) { Diese ZufuhrIST in der Lage, sich alle I/O Ausnahmen, einschließlich FileNotFoundException, EOFException zu verfangen und so weiter. Sie können finden Details über, was auftrat, indem es das Argument fragte, das der Ausnahmezufuhr geführt wird. Z.B. verwenden Sie das folgende, um das Kellerprotokoll zu drucken: verfangen Sie sich (IOException e) { Sie konnten eine Ausnahmezufuhr sogar aufstellen, die jede mögliche Ausnahme mit der Zufuhr hier anfaßt: verfangen Sie sich (Ausnahme e) {// A (auch) allgemeine
Ausnahmezufuhr Die Ausnahmekategorie ist nah an der Oberseite der THRowable Kategorie Hierarchie. Folglich verfängt sich diese Zufuhr viele andere Ausnahmen zusätzlich zu denen, die die Zufuhr sich verfangen soll. Sie können Ausnahmen anfassen wünschen auf diese Weise, wenn alle Sie Ihr Programm tun wünschen, z.B. Druck aus einer Fehlermeldung für den Benutzer ist und dann herausnimmt. In den meisten Situationen jedoch wünschen Sie Ausnahmezufuhren so spezifisch sein, wie möglich. Der Grund ist, daß die erste Sache, die ein Zufuhrmuß, feststellen ist, welche Art der Ausnahme auftrat, bevor sie auf der besten Wiederaufnahme Strategie entscheiden kann. In Wirklichkeit indem er sich nicht spezifische Störungen verfängt, muß die Zufuhr jede mögliche Möglichkeit unterbringen. Ausnahmezufuhren, die zu allgemeine Dose sind, bilden Code fehleranfälliger, indem sie Ausnahmen sich verfangen und anfassen, die nicht vom Programmierer vorweggenommen wurden und für, welches der Zufuhr nicht beabsichtigt wurde. Wie gemerkt, können Sie Gruppen Ausnahmen verursachen und
Ausnahmen auf eine allgemeine Art und Weise anfassen, oder Sie können
die spezifische Ausnahmeart benutzen, um Ausnahmen zu unterscheiden
und Ausnahmen auf eine genaue Art und Weise anzufassen. dieses ist ein Artikel, der von Clain Brand hinzugefügt
wird
|
|||||
|