Programmierung: Java, wenn Fehler auftreten

Fehler in Java-Anwendungen können zu verschiedenen Zeiten auftreten. Sie können jedoch im Großen und Ganzen zu klassifizieren, wenn ein Fehler in zwei Kategorien, bei der Kompilierung und Laufzeit auftreten wird, wie in den folgenden Abschnitten beschrieben.

Kompilieren Zeitfehler

Der Compiler wandelt Ihre Anwendung Code in Java-Bytecode. Während dieses Prozesses nimmt es den Menschen lesbaren Code, den Sie schreiben und wandelt es in etwas, das die Java Runtime Environment (JRE) versteht.

Um diesen Prozess durchzuführen, muss der Compiler parsen der Code, der es liest den Code in einer Art und Weise bedeutet, der bestimmt, eindeutig genau das, was Sie die Anwendung tun wollen, wenn Sie es es tun wollen, und wie Sie die Aufgabe erledigt werden soll. Wenn Sie die Regeln für das Schreiben von eindeutigen Code zu brechen, zeigt der Compiler eine Fehlermeldung. Diese Meldung ist eigentlich eine Art von Ausnahme.

Parsing bedeutet die Eingabe, die Sie zur Verfügung stellen, wie zum Beispiel Code in lesbarer Form, und es in etwas anderes, wie zum Beispiel Java-Byte-Code zu lesen. Eine Anwendung kann auch Benutzereingaben analysieren. Zum Beispiel könnte ein Benutzer eine Zeichenfolge eingeben, der Anwendungscode in eine Zahl verwandelt.

Also, Parsing ist der Akt der irgendeine Art von Input lesen, dass die Eingabe in einer bestimmten Art und Weise zu interpretieren, und dann Ausgabe erzeugt, basierend auf dem interpretierten Eingang. Ein Parser erzeugt einen Fehler, wenn der Eingang nicht, was sie erwartet.

Zum Beispiel, wenn der Benutzer gibt einen String mit dem Buchstaben C, und man erwartet, dass eine Zeichenfolge, die eine Zahl wie 123 enthält, der Parser eine Ausnahme, die besagt, dass die Eingabe nicht korrekt ist.

Kompilieren Zeitfehler sind am einfachsten zu handhaben, weil der Compiler normalerweise sagt Ihnen genau, was falsch ist und in dem der Fehler aufgetreten ist. Auch wenn die Informationen nicht exakt ist, wird der Compiler mindestens Sie auf den rechten Bereich des gebrochenen Code zu erhalten, so dass Sie für den Fehler suchen kann es enthält.

Um sicherzustellen, dass jeder versteht genau, wie die Java-Sprache arbeiten soll, erstellen Entwickler eine Spezifikation für sie. Diese Spezifikation enthält die Sprachelemente in einer speziellen Sprache namens Backus-Naur-Form (BNF). BNF Verwendung ist eine extrem präzise Methode zur Beschreibung einer Sprache, so dass es keine Gefahr einer Fehlinterpretation von jedermann ist.

Sie können für die Java-Sprache eine Probe des BNF sehen bei Institut für Informatik - Daimi. Sie nicht zu viel Sorgen über die Möglichkeit, diese Spezifikation zu lesen. Die meisten Entwickler lernen nie die BNF für die Sprachen, die sie verwenden zu interpretieren - das ist die Domäne der Compiler-Entwickler.

Laufzeitfehler

Der Java-Compiler kann nicht jeden Fehler im Code zu finden. Wenn die Form der Code korrekt ist (das heißt, Sie haben keine Fehler gemacht, die Elemente in der Eingabe, die die Anwendung erstellen), wird der Compiler den Fehler nicht finden.

Zum Beispiel, wenn Sie einen numerischen Wert auf 5 statt 4, der Compiler für Sie nicht finden können, den Fehler zu initialisieren, da der Compiler keine Ahnung hat, was Sie wirklich gemeint 4. Diese Art von Fehler zu geben schaffen Laufzeitfehler - jene Fehler, die zu einem bestimmten Zeitpunkt während der Ausführung der Anwendung geschehen.

Laufzeitfehler können bei allen möglichen Zeiten auftreten. Einige Fehler eher zu bestimmten Zeiten auftreten. Die folgende Liste gibt Ihnen einige Ideen, wenn Laufzeitfehler wahrscheinlich auftreten:

  • Initialisierung: Beim ersten Start der Anwendung - bevor es irgendeine Art von Schnittstelle zum Anwender präsentiert oder führt eine nützliche Arbeit - es geht durch eine Initialisierungsphase. Dies ist, wenn eine Variable auf den falschen Typ Einstellung oder versuchen, eine Variable zu verwenden, bevor Sie es initialisieren wird bemerkt. Viele rohstoffbezogene Fehler auch bei der Initialisierung auftreten, weil die meisten Anwendungen Ressourcen während dieser Zeit erforderlich öffnen.

  • Betriebsart: Nachdem eine Anwendung initialisiert wird, ist es im Betriebsmodus. Wenn es eine Benutzeroberfläche hat, beginnt er mit dem Benutzer interagiert. Dies ist die Zeit, wenn Benutzereingaben ankommt.

    Sie werden auch falsch initialisierten Variablen zu diesem Zeitpunkt zu finden, weil der Benutzer (oder der Empfänger der Anwendung Ausgabe, wie das System) werden sehen, dass der Ausgang nicht korrekt ist. Benutzer Anforderungen für Ressourcen, wie beispielsweise eine Datendatei, erzeugen auch Fehler während dieser Zeit.

  • Hintergrundverarbeitung: Die meisten Hintergrundverarbeitung Fehler resultieren aus der Umgebung (wie der Verlust einer Netzwerkverbindung), fehlende Ressourcen (wie eine verlorene Datei), falsch initialisierten Variablen, oder Fehler, wie Sie die Anwendung gesagt, eine Aufgabe auszuführen. Einige Aufgaben sind häufiger im Hintergrund ausgeführt sind als andere.

    Beispielsweise Drucken eines Dokuments oder das Herunterladen von Ressourcen aus dem Internet werden im Hintergrund häufig durchgeführt, während der Benutzer mit der Anwendung im Vordergrund arbeitet weiter.

  • Herunterfahren: Wenn der Benutzer (einschließlich der Systemkonten) die Anwendung sagt, es ist nicht mehr erforderlich ist, geht die Anwendung über einen Shutdown-Phase. Während dieser Abschaltphase schließt sich die Anwendungsdateien und führt andere organisatorische Aufgaben, die die Anwendung nicht gewährleistet, ein Chaos für das Betriebssystem verlassen.

    Die häufigsten Fehler, die während dieser Phase auftreten können, sind nicht frei, Ressourcen, die Ihre Anwendung verwendet hat und nicht die Daten auf der Festplatte zu speichern. Natürlich können Codierungsfehler zu jeder Zeit auftreten, und dieser Betriebsphase ist keine Ausnahme. Sie können die Anwendung sagen fünf Dateien zu schließen, wenn nur vier von ihnen tatsächlich offen sind.

Die JRE werden die meisten Laufzeitfehler präsentieren sie Ihnen als Ausnahmen feststellt. Allerdings wird die JRE nicht jeden Fehler in der Anwendung zu fangen. Sie müssen auch am Ausgang der Anwendung, um zu bestimmen, ob die Ausgabe die Erwartungen entspricht, die Sie für einen bestimmten Eingang.

Darüber hinaus ist es wichtig, auf den Zustand der alle Ressourcen nutzen Sie schauen, um sicherzustellen, dass sie nicht in irgendeiner Weise beschädigt sind. Zum Beispiel müssen Sie sicherstellen, dass alle Daten, die in einer Datei endet tatsächlich in der Datei speichern soll, wenn die Anwendung beendet wird.

Java 8 hat eine stärkere Betonung auf Sicherheit, was bedeutet, dass Sie mehr Security Instanzen sehen werden, wie Sie mit Ihrer Anwendung arbeiten.

hat eine Erhöhung der Sicherheit Ausnahmen Sehen nicht, Ihren Code bedeutet fehlerhaft oder dass Java 8 mit Bugs gefüllt - es bedeutet, dass Java 8 automatisch lokalisiert und informiert Sie über Themen, die Sicherheitsprobleme verursachen könnte, wie Menschen Ihre Anwendung verwenden.

Die Security Dokumentation erscheint Java.net. Natürlich werden Sie wissen wollen, was der ganze Rummel geht.

Menü