Einführung in Ausnahmesituationen in JavaScript
Jetzt werden wir Ausnahmesituationen in JavaScript betrachten. Zunächst werde ich eine Einführung geben, in der es Beispiele für Ausnahmesituationen allgemein für beliebige Programmiersprachen geben wird, und dann werden wir uns damit befassen, wie die Dinge in JavaScript aussehen.
Wenn wir unsere Programme schreiben, gehen wir implizit davon aus, dass alle von uns verwendeten programmtechnischen Mechanismen korrekt funktionieren werden.
Dies ist jedoch nicht immer der Fall. Bei der Übertragung von Daten über das Netzwerk kommt es zu Verbindungsabrissen und Daten kommen bei uns in korrupter Form an oder kommen überhaupt nicht an. Beim Schreiben einer Datei stellt sich heraus, dass der für uns reservierte Platz auf der Festplatte aufgebraucht ist und die Datei nicht geschrieben werden kann. Beim Lesen einer Datei stellt sich heraus, dass eine solche Datei nicht existiert und es nichts gibt, was wir lesen könnten. Beim Drucken von Daten auf dem Drucker kommt es zu einem Bruch des Kabels, das den Drucker und den Computer verbindet.
Alle beschriebenen Situationen haben eine gemeinsame Essenz: Es tritt eine Art Fehler auf, der zur Unmöglichkeit oder Sinnlosigkeit des Abschlusses der geplanten Operation führt.
Es gibt auch Situationen, in denen ein Fehler auftritt, der kein Ausfall ist. Zum Beispiel, Sie fragen den Benutzer nach seiner E-Mail-Adresse, und er gibt eine E-Mail in einem ungültigen Format ein. Es ist klar, dass unser Programm nicht fortfahren kann, die E-Mail zu verarbeiten, da sie nicht korrekt ist. Aber dennoch ist dies - keine Ausnahmesituation. Unser Programm kann die Situation selbst korrigieren: Es wird eine Fehlermeldung anzeigen und der Benutzer wird seine Eingabe wiederholen.
Tatsächlich ist der Unterschied zwischen einem Ausfall und einem Nicht-Ausfall sehr verschwommen. Ein Ereignis, das ein Programm als Ausnahmesituation interpretieren kann, kann ein anderes Programm als einen Fehler interpretieren, mit dem es umgehen kann.
Das Kriterium hier ist folgendes: Wenn bei Auftreten eines Problems Ihr Programm weiterhin das ausführen kann, wofür es bestimmt ist, dann ist es keine Ausnahmesituation, und wenn nicht - dann ja, es ist eine Ausnahme.
Zum Beispiel haben wir ein Programm, das die E-Mail-Adresse des Benutzers abfragen soll. Wenn der Benutzer die E-Mail in einem ungültigen Format eingegeben hat - ist das kein Ausfall. Dies ist ein erwartetes Problem und unser Programm wird den Benutzer so oft nach der E-Mail fragen, bis er sie korrekt eingibt.
Nehmen wir an, unser Programm, das die E-Mail abfragt, soll diese korrekte E-Mail auch über das Internet senden. Dabei stellt sich heraus, dass das Internet nicht funktioniert. Das ist nun ein Problem: Das Programm kann auf keine Weise Daten über das Internet senden, wenn das Internet nicht funktioniert. Das Programm kann dennoch seine Ausführung fortsetzen: Es kann Informationen über das Problem ausgeben, den Sendeversuch nach einiger Zeit wiederholen und so weiter. Aber diese Aktionen sind nicht genau das, wofür das Programm vorgesehen war, da die Hauptaktion - das Senden der E-Mail - vom Programm nicht durchgeführt werden kann.
Sehr oft hängt es von der Programmiersprache ab, ob es sich um eine Ausnahmesituation handelt oder nicht. In vielen Sprachen gilt es als Ausnahme, wenn plötzlich eine Division durch Null auftritt (da durch Null nicht geteilt werden darf), aber in JavaScript - gilt es nicht (in JavaScript kann durch Null geteilt werden).