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:

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.


MIME::Lite Fehlerbehandlung

13. April 2022 · Programmierung · andreas · Kein Kommentar

Ein Skript, welches MIME::Lite zum Versenden von Mails verwendet, hat sich im Fehlerfall lieber direkt mit einem “SMTP Failed to connect to mail server: Bad file descriptor” beendet, statt gemäß Dokumentation auf den Fehler zu reagieren.

test.pl
use strict; use warnings; use MIME::Lite; 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', ); $msg->send || die "you DON'T have mail!"; print "... still running ...";

Weder “you DON’T have mail!” noch “… still running …” werden ausgegeben, da diese Stellen im Code auf Grund des Programmabbruchs nicht mehr erreicht werden.

Leider ist die Erläuterung zum Verhalten der Funktion “$msg->send” nicht wirklich hilfreich:

Returns whatever the mail-handling routine returns: this should be true on success, false/exception on error.

Eine Suche im Internet führte zum Blogbeitrag “Perl exception handling”, welcher genau das aufgetretene Verhalten beschreibt und eine Lösungsmöglichkeit mittels “eval” aufzeigt:

test.pl
use strict; use warnings; use MIME::Lite; 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', ); eval { $msg->send; }; if ($@) { print "you DON'T have mail!"; } print "... still running ...";

So gekapselt läuft das Skript auch nach einem gescheiterten “$msg->send” weiter und auf einen eventuellen Fehler kann reagiert werden.


Hörenswert #64: Pink Floyd - Hey Hey Rise Up (feat. Andriy Khlyvnyuk of Boombox)

11. April 2022 · Hörenswert · andreas · Kein Kommentar

Am 7. April machte überraschend die Nachricht die Runde, daß Pink Floyd eine neue Single veröffentlichen.

Auf der Basis eines Instragram-Videos des Boombox-Frontmans Andriy Khlyvnyuk haben David Gilmour und Nick Mason mit der Hilfe von Guy Pratt und Nitin Sawhney einen Charity-Song eingespielt und entschieden, diesen unter dem Banner “Pink Floyd” zu veröffentlichen. Die Entstehunggeschichte und Hintergründe erläutert David Gilmour im Artikel “‘This is a crazy, unjust attack’: Pink Floyd re-form to support Ukraine” des “The Guardian”.

Musikalisch ist “Hey Hey Rise Up” sicherlich nicht der stärkste und interessanteste Song, den Pink Floyd je veröffentlicht haben - aber darum geht es auch nicht. Es geht vielmehr darum, ein wichtiges Zeichen gegen Krieg und für Frieden und Solidarität zu setzen.


Primal Fear 2004-06-25 Bildergalerie

08. April 2022 · Konzerte · andreas · Kein Kommentar

Primal Fear am 25. Juni 2004 beim Bang Your Head Festival in Balingen


Klaus Seilers Album-Highlights 2021

06. April 2022 · Audio · Klaus Seiler · Kein Kommentar

Meine Album-Highlights des Jahres 2021 in alphabetischer Reihenfolge:

Albumcover

Creye - II

Über dieses Album hatte ich schon in April 2021 ein Review geschrieben, es braucht also keine größeren Ergänzungen dazu. Das Teil drehte sich für Monate immer wieder im Player, eines der besten Oldschool-AOR-Alben der letzten Jahre.

Dave Gahan & The Soulsavers - Imposter

Dave Gahan ist mehr als der charismatische Frontmann von DEPECHE MODE, er ist ein Crooner reinsten Wassers. Ich mag seine Stimme und ich mag seine Fähigkeiten, tolle Songs zu covern, ohne sie zu verwässern oder gar zu verschlimmbessern. Dazu kommt noch dieses durchgehende “Pop-Noir”-Gefühl, welches das gesamte Album durchzieht.

Nolwenn Leroy - La Cavale

Von der Kritikasterzunft allermeist gerade mal so wohlwollend aufgenommen, ist das Album mit dem darauf enthaltenen French-Pop-Folk-Mix für mich ein akustischer Ohrenschmaus. Luftig, locker, feine Stimme. Könnte man das Album essen, würde ich es als sehr fluffiges Muffin bezeichnen. Sicher nicht jedermanns Sache und über das Coverpic will ich mich jetzt auch nicht auslassen, aber man schwimmt auch gerne mal gegen den Strom.

Robert Plant | Alison Krauss - Raise The Roof

Natürlich gehört dieses Album zu den Top 5, es wurde mehr als genug gewürdigt. Alles, was ich jetzt noch schreibe, wäre simple Wiederholung.

Strand Of Oaks - In Heaven

Und jetzt kommt ein Album, das ich in 2021 wirklich zufällig bei den Reviews von Laut.de entdeckt hatte. Ich mag Folk, ich mag Folk-Rock, ich mag das, was man auch gerne mal als “Americana” bezeichnet. Und dieses Album ist eine für meine Begriffe wirklich tolle Melange aus diesen Zutaten. Es ist -was selten bei mir vorkommt- eine Band, die man wohl in die berühmt-berüchtigte Indie-Ecke stellen mag. Also ein Bereich, in dem ich normalerweise eher nicht unterwegs bin. Aber für tolle Ausnahmen bin ich trotzdem immer zu haben.