Bessere Fehlerbehandlung mit Try::Tiny
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:
test.pl
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.