Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Life after DIE

by jsegal (Friar)
on Jan 12, 2002 at 00:05 UTC ( [id://138119]=note: print w/replies, xml ) Need Help??


in reply to Life after DIE

Hi. The standard way of dealing with "die" is to place an "eval" around the code you call which might call die, and check the $@ special variable to see if die was called. for example, if the function "read_pdf" has a die somewhere inside it, and you want to safely call it, instead of

my $pdf = read_pdf("foo.pdf");
try
my $pdf; eval { $pdf = read_pdf("foo.pdf"); }; if ($@) { #read_pdf called die, handle error gracefully.. } ...

This is the perl-way of doing "throw" and "catch" -- think of die as "throw" and eval as "catch".
NB: That semicolon after the eval block is important, and easy to miss. (It separates the "eval" from the "if" -- otherwise the parser will think the if is a postfix if, and you'll get a parse error).

Hope this helps...

-Jonathan

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://138119]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (3)
As of 2024-04-25 06:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found