pl: Mehrere Instanzen einer Exception Class

Beitrag lesen

problematische Seite

In Perl ist es übrigens möglich, beliebig viele Exceptions zu werfen ohne darauf reagieren zu müssen. Nämlich dann wenn jede einzelne Exception mit eval aufgefangen wird:

# Klassisch mit eval
eval{ die 123 }; # lost
eval{ $m->throw('ExA', 'Ex A: Invalid', 1) };
eval{ $m->throw('ExB', 'Ex B: Ungültig') };
eval{ die 234 }; # always overwrites $@

Wenn es mehrere eval{}-Blöcke gibt in denen Exceptions aufgetreten sind, wäre auf die herkömmliche Art und Weise $@ überschrieben worden. Erst eine Klassifizierung hebt diesen Nachteil auf. Mit meiner Entwicklung ist es möglich, sämtliche derart aufgefangene Exceptions wiederzufinden.

Ansonsten kann es auch in Perl in einem eval{} oder try{} Block nur eine Exception geben, die zwar aufgefangen wird, jedoch werden alle danach innerhalb desselben Blocks notierten Anweisungen nicht mehr ausgeführt.

So macht bspw. ein INSERT-Statement ja auch keinen Sinn wenn die Verbindung weggebrochen ist.

MfG