Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Over-riding Catalyst's finalize_error method

by Your Mother (Archbishop)
on May 17, 2021 at 02:33 UTC ( [id://11132684]=note: print w/replies, xml ) Need Help??


in reply to Over-riding Catalyst's finalize_error method

Ragged, semi-tested; been a long time I really stepped through this so consider this cargo-culting and refer to the docs; Catalyst::Action::RenderView. This idiom is common and useful if you don’t go to the trouble of getting the Plugin::CustomErrorMessage stuff set up.

# In MyApp::Controller::Root… sub render :ActionClass("RenderView") {} sub end :Private { my ( $self, $c ) = @_; return if $c->response->body; # Stop, good or bad, it's been rende +red. $c->forward("render"); # Send to RenderView. # If there was an error in the render above, process it and just o +utput the error. if ( my @err = @{ $c->error } ) { $c->log->error("Error: " . join(", ", @err)); $c->response->status(503); $c->response->body("There was an unrecoverable error: " . joi +n(", ", @err)); # ^^^ Could contain user input like XSS attacks, so naïve/dang +erous as shown. # Echoing errors is a security problem in itself. $c->clear_errors; } }

Update 20211102: added a comment about danger of echoing errors and insecurity of sample code.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11132684]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (1)
As of 2024-04-18 23:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found