Mailinglisten-Archive |
On Tue, 24 Oct 2006 21:56:58 +0200, Lutz Zetzsche wrote: Hallo Lutz, >"Es ist sinnvoll, Exceptions abzufangen, um zusätzliche Informationen >anzureichern und erneut auszulösen." http://de.wikipedia.org/wiki/Exception Diese Aussage gilt aber nur für die angegebenen Sprachen und Welten. Was den Großrechner angeht, kann diese Aussage auf keinen Fall gelten. In der alten EDV-Welt des IBM Mainframe herrscht ein ganz anderes Verständnis für Exception. >Ansonsten denke ich, daß man Exceptions so wenig wie möglich einsetzen >sollte, also nur für absolute Ausnahmefälle. Normalerweise sollte der >Code so programmiert sein, daß er ohne Exceptions auskommt. Damit meine >ich nicht etwa, mit Fehlercodes zu arbeiten, sondern nicht alles und >jedes mit Exceptions zu regeln, sondern eben alles sauber >auszuprogrammieren. Wenn ein Anwendungsprogramm eine saubere Fehlerbehandlung hat, dann sollte es eigentlich keine Notwendigkeit geben, Exceptions zu behandeln. Exception = Program Check = Abnormal End - etwas läuft richtig schief und ein Programm trifft auf eine Situation, die der Autor nicht vorsehen konnte. Oder es ist ein Fehler, der ganz ausserhalb seiner Zuständigkeit liegt wie z.B. ein Hardware-Fehler. >Irgendwo bin ich heute auch auf einen Artikel gestoßen, wo erwähnt >wurde, daß die Frage nach dem Sinn und Unsinn von Exceptions vielfach >den Charakter von Betriebssystem-Diskussionen - oder >IDE-Diskussionen ;-) - annehmen soll. Also ist das Thema so und so >deutlich vielschichtiger, als man auf den ersten Blick denkt. ;-) Das unterstreiche ich ganz dick. Der o.g. Artikel weiß nichts über IBM Systeme und das ist eine ganz andere Welt. Einen Programmabbruch abzufangen macht dann Sinn, wenn ohne diese Aktion etwas schief laufen würde. Beispiel: Ich habe Daten geändert, die nun wieder auf den Stand zuvor gestellt werden müssen (Transaction Backout) und das System (welches auch immer) weiß nichts davon oder ist nicht zuständig. Typischerweise geschieht so etwas mit einem "Before Image Copy". Ich speichere die Ursprungsdaten in der SESSION. Nach diversen Updates und Aktionen tritt dann ein Fehler ein, den ich über ein Exception Handling abfange und ich kann dann den Stand wiederherstellen. Empfehlenswert bei "unternehmenskritischen Daten". Ciao Werner
php::bar PHP Wiki - Listenarchive