hi,
[..] Kontrollstrukturen sind weniger aufwendig abzuarbeiten als Exceptions.
Ja: Wenn Du in jedem if/else Zweig ein try/catch einbauen würdest ;)
Nein: Wenn try/catch nur einmal erfolgt, nämlich an einer dafür geeigneten Stelle, z.B. vor der Ausgabe auf STDOUT oder der Rückgabe eines Objects aus dem Konstruktor heraus.
Zu Letzterem: Es gibt auf CPAN ungezählte Perl-Module, deren Synopsis so aussieht:
my $obj = Class->new or print $@;
Ich habe bewusst "print" geschrieben, aber was spielt sich denn ab, wenn das Objekt nicht erstellt werden konnte???? Richtig: Innerhalb Class wurde eine Exception geworfen, deren ErrCode in $@ zu finden ist!
Ausnahmen bestägigen die Regel ;)