Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

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!

Replies are listed 'Best First'.
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?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://998104]
Approved by chacham
Front-paged by Tanktalus
[huck]: a first for me, got someone at credit card services to give me their credit card number!!

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (7)
As of 2017-03-24 19:27 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (306 votes). Check out past polls.