[Catalyst] RFC Catalyst::Plugin::ErrorOut
apv
apv at sedition.com
Sat Jul 14 00:26:03 GMT 2007
I generally love the way Catalyst handles errors but often I'd prefer
my first die or C::Exception to just shut everything down instead of
trundling along trying, maybe expensively, to do more which is
already destined for failure.
Is this something others might like to use? Name preference if it's
ending up on the CPAN? Other ideas? I have not written any test code
yet so I'm not even positive it would work the way I want, but I
think so.
Demo doc:
use Catalyst qw/
Your
Real
Plugins
ErrorOut
/;
sub item_at_front_of_long_chain : PathPart("whatever") : Chained
("/") : CaptureArgs(1) {
my ( $self, $c, $something ) = @_;
# ...
if ( $something eq $is_wrong )
{
$c->error_out("Really, really, really die");
}
}
Then in Catalyst::Plugin::ErrorOut, something like this:
sub error_out {
my ( $c, $msg ) = @_;
eval {
Catalyst::Exception->throw("RC_$status_code: manually thrown
error for testing");
die "Catalyst::Exception->throw failed to cause exception";
};
$c->error($@);
$c->detach();
}
–Ashley
--
More information about the Catalyst
mailing list