Thread Programm-Abbruch verhindern: Kei nAbbruch wenn open-funktion fehler (14 answers)
Opened by rommi at 2007-03-17 12:39

bloonix
 2007-03-17 19:55
#75113 #75113
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=topeg,17.03.2007, 17:55]Und Konstrukte wie
Code (perl): (dl )
open(DAT,'<',$datei) or die "Fehler ($!)"
kann dann zu einem sehr seltsamen Verhalten des Programmes führen, da der nachfolgende Code ausgeführt wird.[/quote]
Nein, das ist nicht ganz korrekt. Wenn du ein die() ausführst, stirbt
das Skript auf jeden Fall. Nachfolgender Code wird nicht mehr ausge-
führt, es sei, er steht in der Subroutine. Mit

$SIG{__DIE__}=sub{ warn "Fehler: $_[0]" };

wird zwar warn() ausgeführt, aber das Skript stirbt danach definitiv.

Code: (dl )
1
2
3
4
5
6
7
8
use strict;
use warnings;

$SIG{__DIE__}=sub{ warn "Fehler: $_[0]" };

die "hier stirbt das Skript definitiv!";

print "test\n";


Fehler: hier stirbt das Skript definitiv! at ./test.pl line 7.
hier stirbt das Skript definitiv! at ./test.pl line 7.


Die Meldung wird zwei Mal ausgegeben. Um das zu vermeiden, muss
in der anonymen Routine ein exit() ausgeführt werden.\n\n

<!--EDIT|opi|1174154224-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.

View full thread Programm-Abbruch verhindern: Kei nAbbruch wenn open-funktion fehler