[Catalyst] Trapping exceptions in Catalyst.pm

Tomas Doran bobtfish at bobtfish.net
Wed Aug 4 12:28:34 GMT 2010


On 4 Aug 2010, at 10:06, Ton Voon wrote:
>> In general, it's better to test the return value from eval directly  
>> instead of depend on $@.  Something like:
>>
>> my $has_exception;
>> eval { $c->state( $code->execute( $class, $c, @{ $c->req->args } )  
>> || 0 ); 1; } || $has_exception++;
>> ...
>> if ( $has_exception ) {
>>
>> Or use the "eval {....; 1 } || do { my $msg = $@; ...};" style.
>
> I did a bit of work in DBIx::Class where I changed all the eval  
> statements to using Try::Tiny instead. Not sure if it got into trunk  
> yet. A similar conversion here would work.

Branch to do that (Try::Tiny) entirely welcome, we already depend on  
it (via Moose).

Cheers
t0m




More information about the Catalyst mailing list