[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