476 Shares 8774 views

Java: Ausnahmen und deren Handhabung

Jedes Programm wird stabil arbeitet nur dann, wenn der Quellcode auf Fehler, und es gibt keine Bedingungen, die unvorhergesehenen Situationen führen kann. Der Prozess des Verfangens mögliche Fehler auf der Programmierphase durchgeführt. Dazu nimmt der Entwickler Berücksichtigung aller erwarteten Ergebnisse und versucht, die Auswirkungen des Fehlers zu begrenzen, so dass es nicht mit dem Betrieb des Programms stören könnte, oder zu ihrem Zusammenbruch führt.

Wenn Sie könnten die Ausnahmebehandlung benötigen

In Java kann eine Ausnahme durch falsche Benutzereingaben verursacht werden, keine Notwendigkeit für eine Ressource oder plötzliche Netzwerktrennung Programm. Für die komfortable Nutzung durch den Anwendungsentwickler erstellt haben, müssen Sie das Auftreten von Notsituationen steuern. Der Verbraucher sollte nicht um eine Anwendung zu beenden warten, Daten als Ergebnis einer nicht behandelten Ausnahme zu verlieren, oder nur ein Teil einer Nachricht angezeigt, die besagt, dass etwas schief gelaufen ist.

Umgang mit Java Ausnahmen

Was ist zu beachten? Die Java-Sprache hat ihre eigene eingebaute in Ausnahmebehandlung Funktionalität. Natürlich ein großer Prozentsatz des Fehlers durch eine anderen Kompilierungsphase gefangen wird, benachrichtigt das System automatisch, dass die Nutzung nicht mehr möglich ist. Aber es ist diese Art von Ausnahme, die zur Laufzeit auftritt. Der Entwickler sollte in der Lage sein, es zu antizipieren und den Code so zu gestalten, dass es nicht einen Fehler verursachte, und behandeln sie in besonderer Weise und die Kontrolle an einem anderen Zweig übergeben.

In Java wird dies durch den Compiler auferlegt, eine Ausnahme zu fangen, so sind die typischen Probleme bekannt und ein Standard-Bewegungsmuster hat.

typische Ausschlüsse

Das einfachste Beispiel, in dem Sie eine Ausnahme erhalten – diese Abteilung. Trotz seiner Einfachheit in Bezug auf, als Teiler, kann Null sein, was zu einem Fehler führt. Nun, wenn es möglich ist, die Entstehung der Vergangenheit vorherzusagen und verhindern. Aber diese Option ist nicht immer verfügbar, so die Ausnahme abfangen sollte „durch Null teilen“ direkt im Fall organisiert werden.

Die Java-Mechanismus Verarbeitungsfehler abzufangen, sieht wie folgt aus:

  • heap Ausnahmeobjekt ist, sowie jedes andere erstellt;
  • der natürliche Verlauf des Programms unterbrochen wird;
  • Ausschlussmechanismus versucht, einen alternativen Weg zu finden, den Code fortzusetzen;
  • Finden Sie eine sichere Durchführung des Programms in dem Prozessor, zu arbeiten oder wieder hergestellt, oder wird Realisierung Ausnahme in besonderer Weise auftreten.

Das einfachste Beispiel für einen Fehler zu schaffen könnte wie folgt aussehen:

if (a == null)

werfen neue Nullpointer ();

Hier wird die Variable eines bei der Initialisierung überprüft, das heißt, nicht, ob die Referenz auf ein Null-Objekt ist. Wenn diese Situation eines besondere Behandlung entstanden ist und benötigt eine Ausnahme von einem Wurf neuen Nullpointer geworfen wird ().

Nur wenige Details über keywords

Wenn mit Ausnahmen zu tun ist oft notwendig, das Stichwort Java zu verwenden, um eine bestimmte Aktion zu verweisen. Diese Sprache ihrer fünf Programmierung:

  • Versuchen. Dieses Schlüsselwort wird bereits erreicht, und es bedeutet einen Übergang in einen Abschnitt von Code, der eine Ausnahme auslösen kann. Block begrenzt Klammern {}.
  • Fang. Es fängt den Ausnahmetyp gewünscht und entsprechend zu behandeln.
  • Schließlich. Dieses Schlüsselwort ist optional und verwendet, um ein bestimmtes Stück Code auszuführen, die ohnehin erforderlich ist, auch wenn keine Ausnahme nicht abgefangen wird. Hinzugefügt direkt nach dem try-Block.
  • Werfen – können Sie Java Ausnahmen von überall erstellen.
  • Wirft – ein Schlüsselwort, das in der Methodensignatur platziert wird. Es bedeutet, dass der folgende Code eine Ausnahme von dieser Art Java werfen kann. Diese Markierung dient als Signal für Entwickler, die im Auge behalten werden müssen – das Verfahren kann nicht als von ihm erwartet.

Fangen mit einem Try

Release Java Ausnahmen, setzt natürlich voraus, dass es in besonderer Weise behandelt werden. Der bequemste Weg, es zu tun, wenn der Code-Abschnitt wird in einem Block abgezäunt. Die eine Ausnahme enthalten. Wenn Sie diesen Code ausführen, wird die virtuelle Maschine eine unerwartete Situation, versteht feststellen, dass es ein kritischer Block und überträgt mit der Verarbeitung an die Station steuern.

Der Java-Code wird in einem speziellen Block try gewickelt, in dem eine Ausnahme sein. So stellte er mehrere unvorhergesehene Situationen, die an der gleichen Stelle gefangen werden, nicht raspolzayas Code.

Der typischste Code an die Verarbeitungseinheit ist wie folgt:

try {

// Hier ist ein Code, der eine Ausnahme erzeugen kann

} Catch (Tip_isklyucheniya_1 identifikator_1) {

// Hier gibt es die Ausnahmebehandlung, nach ihrer Art und Bedingungen;

} Catch (Tip_isklyucheniya_2 identifikator_2) {

// Hier gibt es die Ausnahmebehandlung, nach ihrer Art und Bedingungen;

}

Stichwort Fang berichtet, dass Code und scannen es eine Ausnahme, behandelt zu werden, wie unten beschrieben, vorausgesetzt, dass sie mit ihrer Art entspricht. Die Kennung kann bei der Verarbeitung des Codeblockes als Argument verwendet werden.

schließlich

Wie es klar aus dem vorigen Kapitel wurde, fangen catch-Blöcke Ausnahmen und bearbeiten. Aber sehr oft stellt sich die Situation, in der einige Code ausgeführt werden soll, unabhängig davon, ob sie Fehler gefangen wurden. schließlich Dafür gibt es das Schlüsselwort. Es wird verwendet, um die Werte der verschiedenen Zähler zu erhöhen, Dateien oder Netzwerkverbindungen zu schließen.

Dieser Plot zeigt mehrere catch-Blöcke erfundenen Verfahren Ausnahmen fangen. Beispielsweise erzeugt der Code im try enthielt eine unerwartete Situation, wie sie kalt. Dann wird die Konsole Ausdruck «erkältet!» Angezeigt und «Ist das etwas über? Jubeln». Das heißt, der schließlich Block wird in jedem Fall ausgeführt.

In der Tat, schließlich gibt man zu vermeiden, ein Art und Weise auszulösen. Es wird mit dem Abschluss der virtuellen Maschine verbunden. Finden Sie, wie es zu implementieren, ist es möglich, im Internet Freifläche.

throw-Schlüsselwort

Wurf erzeugt eine Ausnahme. Die Syntax ist wie folgt:

throw new NewException ();

Es gibt eine neue Ausnahme vom Typ NewException () erstellt wird. Als eine Art verwendet werden kann, ist bereits in den Standard-Java-Bibliothek Klassen enthalten ist und zuvor durch den Entwickler der eigenen Produktion definiert.

Dieser Entwurf ist ein Teil der Bezeichnung eines Verfahrens, das der Anruf dann innerhalb des try-Block, um in der Lage sein abzufangen es auftreten sollte.

Stichwort wirft

Was passiert, wenn in dem Prozess der Entwicklung einer Situation, in der die Methode eine Ausnahme auslösen kann, ist aber richtig behandeln nicht in der Lage. Zu diesem Zweck wird in der Methodensignatur spezifiziert das Wort führt und die Art der möglichen Ausnahmen.

Dieses Etikett ist eine Art Indikator für die Client-Entwickler, dass das Verfahren nicht in der Lage ist, ihre gleiche Ausnahme zu behandeln. Darüber hinaus, wenn der Fehlertyp aktiviert ist, dann wird der Compiler explizit danach zwingen fragen.

Versuchen Sie, Ressourcen

Die Java-Version 7 Entwickler haben eine wichtige Neuerung, als Behandlung try-Block mit Ressourcen enthalten.

Viele Objekte sind in Java erstellt, nach dem Gebrauch nach unten herunter sollte Ressourcen zu schonen. Zuvor hatte es dies zu berücksichtigen und diese Instanzen manuell zu stoppen. Nun aber sie erschienen AutoClosable Schnittstelle. Es hilft, automatisch zu schließen, bereits verwendet, um Objekte in einem Try-Block platziert. Durch diesen Ansatz ist es bequemer geworden, Code zu schreiben in ihrer Lesbarkeit deutlich erhöht wird.

Eigene Klassen Java Ausnahmen

Die Schöpfer der beschriebenen Programmiersprache berücksichtigten viele Aspekte der Design Arten von Notfällen. Doch alle Optionen das Ergebnis der Ereignisse zu verhindern, wird nicht funktionieren, so in Java implementiert die Fähigkeit, ihre eigenen Ausnahmen zu definieren, ist es angebracht, auf die Bedürfnisse des jeweiligen Code.

Die einfachste Art und Weise zu schaffen – von den am besten geeigneten zu dem Objektkontext zu erben.

Es geschah von Exception, um die Klasse zu erben, die verwendet wird, Ihre eigenen Ausnahmen zu definieren. In MyException hat zwei Konstrukteuren – ein Standard, die zweite – mit dem msg Typ String-Argument.

Dann wird in der öffentlichen Klasse FullConstructors implementiertes Verfahren f, die die Signatur enthält wirft MyException. Dieses Schlüsselwort bedeutet, dass f wie Java MyException Ausnahme auslösen können. in dem Verfahren hergestellten Körper Textinformation auf die Konsole selbst und die aktuellen Generation MyException durch throw Ferner.

Das zweite Verfahren unterscheidet sich etwas von der ersten, dass, wenn man eine Ausnahme zu erzeugen, wird es einen String-Parameter übergeben, die auf Fang in der Konsole reflektiert wird. Im Haupt ist klar, dass f () und g () in einem Versuch Kontrolle gebracht werden und Keyword Fang zu erfassen MyException konfiguriert. Das Ergebnis der Verarbeitung wird eine Fehlermeldung auf der Konsole angezeigt werden:

So kam es, Java Ausnahmen hinzuzufügen, durch seine eigene Hand.

Architektur Ausnahmen

Wie bei allen Objekten in Java, sind Ausnahmen auch eine hierarchische Struktur geerbt und haben. Das Wurzelelement aller in dieser Programmiersprache geworfen Fehler ist Klasse java.lang.Throwable. Geerbt von ihm zwei Arten – Fehler und Ausnahme.

Fehler – signalisiert den kritischen Fehler und ist nicht markiert Java Ausnahmen. Interception und die Verarbeitung dieser Daten in den meisten Fällen tritt in der Entwurfsphase und nicht in der Notwendigkeit in der Endanwendung Code einzuführen.

Die am häufigsten verwendeten Klasse für die Erstellung und die Ausnahmen zu analysieren ist Ausnahme. Welche wiederum wird in mehrere Zweige unterteilt, einschließlich Runtime. Durch Runtime sind Laufzeitausnahmen, das heißt, während des Programms auftreten. Alle Klassen von ihm abgeleitet sind nicht verifizierbar.

Oft gibt es Ausnahmen

In Java Ausnahmen wird die Liste von denen im Folgenden dargestellt, werden am häufigsten verwendet wird, so dass Sie jede von ihnen im Detail beschreiben sollten:

  • ArithmeticException. Dazu gehören Fehler im Zusammenhang mit arithmetischen Operationen. Das krasseste Beispiel – die Division durch Null.
  • ArrayIndexOutOfBoundsException – ein Aufruf an die Array-Element-Nummer, die die Summe seiner Länge überschreitet.
  • Arrays – Versuch, eine inkompatible Elementtyp des Arrays zugeordnet.
  • Classcast – ein Versuch, den falschen Typ in einen anderen zu bringen.
  • Illegal – das falsche Argument im Methodenaufruf.
  • Negativ – eine Ausnahme, wenn Sie eine Reihe von negativer Größe erstellen.
  • Nullpointer – Missbrauch von Verweisen auf null.
  • Number – tritt auf, wenn eine falsche Zeichenfolge Umwandlung in Integer.
  • UnsupportedOperationException – Betrieb wird nicht unterstützt.

Diese Beispiele stellen die Arten von ungeprüften Java Ausnahmen. Aber so geprüft aussehen:

  • ClassNotFoundException – Klasse nicht gefunden.
  • IllegalAcccessException – Zugriff auf die Klasse beschränken.
  • InterruptedException – Unterbrechung des Flusses.
  • NoSuchFieldException – es gibt kein erforderliches Feld.

Die Interpretation der Ausnahmen

Apropos sollte häufig auftretende Ausnahmen zu beachten, dass ihre Auslegung in der Konstruktion, kann nicht richtig wahrgenommen werden. Als nächstes ist eine kurze Liste im Detail zu erklären, wo es eine unerwartete Situation sein kann.

Nullpointer. Der erste Fall ist, wenn es eine Ausnahme ist, wird auf eine Referenz auf ein Objekt ansprechen, die auf null gleich ist. Sie erstreckt sich auch auf die Null-Klasse Instanzmethoden. Nullpointer kann im Fall des Erhaltens eine gleiche Länge null Array geworfen werden. Um solche Situationen zu vermeiden, wird auf der Null regelmäßig Websites überprüfen.

ArrayIndexOutOfBoundsException. Jedes Programm kann nicht ohne den Einsatz von Arrays existieren. Dementsprechend kann die häufige Inanspruchnahme sie erzeugen und Fehler. Ausnahme tritt auf, wenn ein Entwickler versucht, ein Array-Element zuzugreifen, die nicht in der Index-Liste ist. Zum Beispiel ist der gewünschte Wert über oder unter Null Länge. Sehr oft ist ein Ergebnis der Tatsache, dass in dem Array mit einer Punktzahl von null beginnt.

Befund

Umgang mit Java Ausnahmen – eine leistungsfähige Tool-Umgebung, die stark die Arbeit des Programmierers erleichtert und ermöglicht es ihm, ein sauberen und ohne Codefehler zu erstellen. Auf wie glatt und stabil funktionierenden Anwendung ist abhängig von der Stellung und dem Ruf des Entwicklers.

Natürlich in einem mehr oder weniger einfachen Programmen anormale Situationen verfolgen viel einfacher. Aber in großen automatisierten Komplexen für ein paar hunderttausend Linien ist es möglich, nur aufgrund der langfristigen Testen und Debuggen.

Für Java-Ausnahmefehler, von dem in einigen Anwendungen auftreten, bieten einige Unternehmen eine Belohnung, wenn sie Enthusiasten finden. Besonders geschätzt von denen, die eine Verletzung der Sicherheitspolitik Software verursachen.