phildeman has asked for the wisdom of the Perl Monks concerning the following question:
Please bare with me, I am new to Catalyst.
Whenever, I get an error pertaining to a view, I get a grey page that says, "Please come back later" in a dozen languages. I would like to by pass this page and send it to a customized error page, with my own response to the user".
I have checked Catalyst::Manual::Cookbook, and used their example:
sub end : Private {
my ( $self, $c ) = @_;
if ( scalar @{ $c->error } ) {
$c->stash->{errors} = $c->error;
# for my $error ( @{ $c->error } ) {
# $c->log->error($error);
# }
$c->stash->{template} = 'errors.tt';
$c->forward('MyApp::View::TT');
$c->clear_errors;
}
return 1 if $c->response->status =~ /^3\d\d$/;
return 1 if $c->response->body;
unless ( $c->response->content_type ) {
$c->response->content_type('text/html; charset=utf-8');
}
$c->forward('MyApp::View::TT');
}
This sample code does render views correctly, but the page with the error still renders the grey page with, "Please come back later"
So, am I doing anything wrong?Do I need to include any other package?
Is there an easier/better way of capturing the view error and redirecting it to a customize error page?
Please note, the template in my actual code points to an different file name, and I have the forward method point to my application View directory.
|
---|