Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Using Tiny::try with exception class

by perlbaski (Sexton)
on Oct 10, 2012 at 00:36 UTC ( #998104=perlquestion: print w/ replies, xml ) Need Help??
perlbaski has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks,

I am trying to use try catch from Try::Tiny module to catch and exception class object.

use Try::Tiny; use Exception::Class ( 'MyException', 'Commands' => { isa => 'MyException' }, 'Timeout' => { isa => 'Commands', description => 'These exceptions are resulted from running t +he naviseccli commands' } ); try{ MyException->throw( error => 'I feel funny. custom string based on +error' ) ; } catch{ my $e=$_; if ( $e == Exception::Class->caught('MyException') ) { warn $e->error, "\n", $e->trace->as_string, "\n"; warn join ' ', $e->euid, $e->egid, $e->uid, $e->gid, $e->pid, $e +->time; #exit; } };

I see that try did not throw the error. Any ideas why?. Try::Tiny documentation says that $_ should contain the error. Is try of Try::Tiny module capable of throwing exception class object and can it be stored in $_?

I do not want to use die in the try block because I do not want the program to exit but retry after some time or for some exceptions just ignore them after printing a log message.

Thanks in advance!

Comment on Using Tiny::try with exception class
Download Code
Re: Using Tiny::try with exception class
by mbethke (Hermit) on Oct 10, 2012 at 01:33 UTC

    The problem is that Exception::Class->caught() explicitly checks $@ for the exception object. The method doesn't do much anyway though, so with Try::Tiny you can simplify this to:

    ... catch { if(UNIVERSAL::isa($_,'MyException')) { warn $e->error, "\n"; ... } }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://998104]
Approved by chacham
Front-paged by Tanktalus
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2014-12-23 00:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (133 votes), past polls