# 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 rendered. $c->forward("render"); # Send to RenderView. # If there was an error in the render above, process it and just output 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: " . join(", ", @err)); # ^^^ Could contain user input like XSS attacks, so naïve/dangerous as shown. # Echoing errors is a security problem in itself. $c->clear_errors; } }