phpbar.de logo

Mailinglisten-Archive

[php] Exceptions selbst gebaut

[php] Exceptions selbst gebaut

Werner Saumweber wsaumweber at mnet-online.de
Mit Okt 25 08:24:43 CEST 2006


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