Bessere Fehlerbehandlung mit Try::Tiny

14. April 2022 · Programmierung · andreas · Kein Kommentar

Die im Beitrag “MIME::Lite Fehlerbehandlung” implementierte Fehlerbehandlung mit “eval” funktioniert zwar in den meisten Fällen, kann aber in bestimmten Situationen doch nicht zum gewünschten Ergebnis führen.

Eine bessere Alternative ist die Verwendung von z.B. Try::Tiny, welches sich mit den aus anderen Sprachen bekannten “try”, “catch” und “finally”-Anweisungen um die Fehlerbehandlung kümmert:

use strict;
use warnings;
use MIME::Lite;
use Try::Tiny;

MIME::Lite->send('smtp', 'mailserver', Debug => 0);

my $msg = MIME::Lite->new(

	From    => 'me@whereever.net',
	To      => 'you@somewhereelse.net',
	Data    => 'Hello World!',
	Subject => 'testmail',
);

try {
	$msg->send;
}
catch {
	warn "you DON'T have mail!";
};

print "... still running ...";

Nach der Warnung “you DON’T have mail!” wird das Programm mit “… still running …” fortgesetzt.