Try - Catch: Try::Tiny

| | Kommentare (0)

Das recht neue CPAN-Modul Try::Tiny von יובל קוג'מן (Yuval Kogman) bietet einen einfachen Ausnahmebehandlungs-Mechanismus.

Wer nicht zwingend auf alle Bells und Whistles von TryCatch angewiesen ist, sollte Try::Tiny mal ausprobieren.

Beispiel: Fehler beim Einbinden eines Modul zur Laufzeit abfangen

#!/usr/bin/perl
use strict;
use warnings;

use Try::Tiny;
 
try {
	require Foo;
} catch {
	# $_ enthaelt Fehlermeldung
    	if ( /^Can't locate Foo\.pm in \@INC/ ) {
		# ignore
		warn "Harmloser Fehler: Foo kann nicht geladen werden\n";
	} 
	else {
		die "Fataler Fehler: $_"; # Alle anderen Fehler sind fatal
	} 
};

Das Programm erzeugt folgende Ausgabe:

Harmloser Fehler: Foo kann nicht geladen werden

Beispiel: Eigener Signalhandler

#!/usr/bin/perl
use strict;
use warnings;

use Try::Tiny;
 
try {
	local $SIG{ALRM} = sub { die "Zeitlimit überschritten $!" };
	alarm(2);
	sleep(5);  # Lang laufende Operation
	
} catch {
		# $_ enthaelt Fehlermeldung 
	if ( /Zeitlimit/i ) {
		warn "Timed out\n";
	}
	else {
		die "Anderer Fehler: $_\n";
	}
};
alarm(0);

Das Programm erzeugt folgende Ausgabe:

Timed out

Siehe auch

Jetzt kommentieren

Über diese Seite

Diese Seite enthält einen einen einzelnen Eintrag von Thomas Fahle vom 5.09.09 15:40.

Slides Perl@FrOSCon 2009 ist der vorherige Eintrag in diesem Blog.

File::Which - portables (p)which ist der nächste Eintrag in diesem Blog.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Blog Roll

Powered by

Powered by Movable Type 5.2.10

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.