Thread Errorhandling (26 answers)
Opened by Oliver at 2020-03-13 10:10

haj
 2020-03-13 13:41
#191498 #191498
User since
2015-01-07
527 articles
BenutzerIn

user image
Bei solchen umfangreichen Ausgaben (wenn's schon mal einen "Debug mode" gibt, das ist nicht selbstverständlich) lohnt es sich dann doch, einen Blick auf die Logging-Frameworks wie CPAN:Log::Log4perl zu werfen. Leider gibt's da fast schon zu viele Frameworks mit unterschiedlicher Terminologie - der Fluch von TIMTOWTDI. Was all diesen Frameworks gemeinsam ist: Sie haben einen "Level" oder "Severity", das Deinem CriticalState entspricht. Und alle diese Frameworks sorgen dafür, dass jeder einzelne Eintrag einen Zeitstempel bekommt. Zudem haben sie auch eine Konfigurationskomponente, die auswertet, welche Meldungen wohin geschickt werden: Ans Handy, an syslog, in eine Logging-Datei, auf den Bildschirm. Das kann in jeder Umgebung dann anders eingestellt werden und erlaubt Dir auch, DEINE Fehlermeldungen separat zu steuern: Bei Log::Log4perl heißt das "category", bei Wikipedia:syslog "facility".

Ein Hilfsmittel zur Erkennung von "Dingen, an die der Programmierer nicht gedacht hat", ist CPAN:autodie. Das sorgt dafür, dass die Systemschnittstellen, die im Fehlerfall einfach undef liefern, statt dessen mit die und einem brauchbaren Meldungstext sterben. Es liegt aber wiederum an Dir, zu entscheiden, ob Du dann das dann mit eval, CPAN:Try::Tiny oder einem anderen Mechanismus abfängst oder nicht.

View full thread Errorhandling