Thread croak und Unterdrückung des caller mit "\n"
(11 answers)
Opened by rosti at 2012-01-22 21:41
Danke an Alle!!
(auch wenn meine Antwort hier steht) Das Thema habe ich heute auch bei den Perlmonks gefunden. Die Philosophie ist diese hier: Willst Du einen Backtrace, nimm Carp. Also: Was will ich? _keinen_ Backtrace, sondern nur die Fehlermeldung. Ergo: Es reicht ein Code (perl): (dl
)
die "Fehlermeldung\n"; Beispiel: http://rolfrost.de/map/kalender/gregorian.html @Gwen: Auf meiner Testumgebung ist ein uralt-Perl (Asche über mich). Ansonsten ist das Exception-Modell von Perl auch einer der Vorzüge gegenüber anderen Programmiersprachen. Beispiel an meinem Modul: Der Konstruktor erwartet einen vom drei Parametern, "jd", "gregdate" oder "julidate". Wurde kein Parameter mitgegeben, setzt das Modul an "gregdate" das aktuelle Datum. Das ist die Initialisierung, im Konstruktor gehts dann weiter mit der Validierung: Code (perl): (dl
)
1 2 3 $self->_initialize; # einer der drei Werte ist gesetzt eval{ $self->_validate }; return $@ ? undef : $self; Die Einfachheit besteht nun darin, innerhalb _validate() oder nachgelagerten privaten Methoden (weitere Berechnungen) eine Exception zu erzeugen, wenn irgendwas nicht stimmt. Der Fehlertext steht dann in $EVAL_ERROR ($@), wenn das Objekt nicht erstellt werden konnte (Anwendung prüft). Einfacher gehts nicht ;) Schöne Grüße, Rolf |