Fehlerzweige und Fehlerhandling
Muss man wirklich bei jedem Datenbankzugriff prüfen, ob die Datenbank noch da ist?
Und muss ich in meinem Programm tatsächlich umfangreiche Maßnahmen ergreifen für den Fall, dass eine Datei nicht geschrieben werden kann?
Wenn auf meinem Fujitsu-Siemens Laptop das Schreiben einer Datei fehlschlägt, dann sitze ich vermutlich eher nicht vor dem Monitor, um mir meine sauber einprogrammierten Fehlermeldungen durchzulesen, sondern stehe mit der Kiste unterm Arm in der Reparaturannahme des Mediamarktes.
Nun ist es ganz bestimmt eine interessante Aufgabe, Programme zu schreiben, die auch dann noch laufen, wenn der Strom ausgefallen, das Netzteil explodiert, die Festplatte blockiert und der Prozessor verglüht ist. Den täglichen Normalfall stellt das aber nicht unbedingt dar.
Man kann sicher lange diskutieren, welche Fehlerzweige tatsächlich nötig sind und wieviel Programmcode dann da drin stehen muss, um die Welt noch zu retten. Ich schlage aber trotzdem folgendes Experiment vor:
Man entwickle mal ein Programm ganz ohne jegliche Fehlerzweige und schaue sich in der Praxis an, was dann passiert. Von dieser Warte aus kann man dann Fehlerzweige mit oder ohne entsprechende Maßnahmen einfügen, wo sie sich wirklich als nötig erweisen.
Das bedeutet es übrigens, sich einer Angst zu stellen: Man tut genau das, wovon die Angst einen normalerweise abhalten würde, um praktisch zu erfahren, dass gar nichts Schlimmes passiert. Und schon ist man wieder ein kleines bisschen freier.
Aber aufgepasst: Es gibt eine Grenze zwischen Fehlerzweig und normalem Anwendungsfall. "Falsches Passwort" zum Beispiel ist kein Fehlerzweig, sondern für einen Schnelltipper wie mich tägliche Pflichtlektüre.
Es geht dabei übrigens nicht nur um die absolute Unwahrscheinlichkeit vieler Fehler, die man ohne Nachzudenken abfangen würde, sondern auch darum, wie die Fehlersituationen, die man handhaben zu müssen glaubt, ganz praktisch aussehen (Dialog mit der Praxis): Was passiert denn tatsächlich und mit eigenen Augen angeschaut, wenn entsprechende Fehler auftreten und was ist aus dieser Sicht eine sinnvolle Reaktion?