"die" eines benutzen Moduls abfangen

"die" eines benutzen Moduls abfangen

am 26.11.2007 20:38:11 von Robert Meissner

Hallo!

Mein Perl Script nutzt ein Modul, dieses greift wieder auf ein
anderes Modul zu. Tritt in dem benutzen Modul ein Fehler auf,
wird 'die' aufgerufen.

Ich möchte innerhalb meines Scripts ein 'die' eines Modules
abfangen um eine individuelle Fehlermeldung auszugeben.

Ist so etwas realisierbar, oder muss ich die Module verändern?

Danke!

MfG
Robert

Re: "die" eines benutzen Moduls abfangen

am 26.11.2007 20:51:32 von Moritz Lenz

Hallo,

Robert Meissner wrote:
> Mein Perl Script nutzt ein Modul, dieses greift wieder auf ein=20
> anderes Modul zu. Tritt in dem benutzen Modul ein Fehler auf,=20
> wird 'die' aufgerufen.
>=20
> Ich möchte innerhalb meines Scripts ein 'die' eines Modules=20
> abfangen um eine individuelle Fehlermeldung auszugeben.

eval {
$obj->eventuell_sterbende_methode();
}
if ($@){
# Fehler behandeln
}

Wenn du jedes Auftreten einer Methode derart behandeln willst, empfiehlt
es sich, von der Klasse zu erben und einen wrapper zu schreiben.

Grüße,
Moritz

--=20
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/

Re: "die" eines benutzen Moduls abfangen

am 26.11.2007 21:20:04 von Robert Meissner

Moritz Lenz schrieb:

> eval {
> $obj->eventuell_sterbende_methode();
> }
> if ($@){
> # Fehler behandeln
> }

eval {
$test->open("1.2.3.4","1234");
}
if ($@) { # <- line 26
print "Fehler\n";
}

Bringt mir folgenden Fehler:

syntax error at ./test.pl line 26, near ") {"
Execution of ./test.pl aborted due to compilation errors.

Grüße,
Robert

Re: "die" eines benutzen Moduls abfangen

am 26.11.2007 21:23:41 von Moritz Lenz

Hallo,

Robert Meissner wrote:
> eval {
> $test->open("1.2.3.4","1234");
> }
> if ($@) { # <- line 26
> print "Fehler\n";
> }
>=20
> Bringt mir folgenden Fehler:
> =20
> syntax error at ./test.pl line 26, near ") {"
> Execution of ./test.pl aborted due to compilation errors.

Ah ja, hinter das eval { ... } gehört noch ein Semikolon ';', das ich
regelmäßig vergesse...

Grüße,
Moritz (der sehnsüchtig auf Perl 6 wartet, wo diese Regeln visuell
konsistenter sind).

--=20
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/

Re: "die" eines benutzen Moduls abfangen

am 26.11.2007 21:24:28 von Florian Weimer

* Robert Meissner:

> eval {
> $test->open("1.2.3.4","1234");
> }

Hier muß ein Semikolon stehen.

> if ($@) { # <- line 26
> print "Fehler\n";
> }

Re: "die" eines benutzen Moduls abfangen

am 27.11.2007 12:52:20 von Andreas Sakowski

"Robert Meissner" schrieb
> Mein Perl Script nutzt ein Modul, dieses greift wieder auf ein
> anderes Modul zu. Tritt in dem benutzen Modul ein Fehler auf,
> wird 'die' aufgerufen.
>
> Ich möchte innerhalb meines Scripts ein 'die' eines Modules
> abfangen um eine individuelle Fehlermeldung auszugeben.
>
> Ist so etwas realisierbar, oder muss ich die Module verändern?

CGI::Carp und dort set_message könnte das sein, was Du suchst.

Andreas