[Catalyst] Custom finalize_error

Jim Spath jspath at pangeamedia.com
Mon Apr 2 21:40:10 GMT 2007


Jason Kohles wrote:
> On Apr 2, 2007, at 4:13 PM, Jim Spath wrote:
> 
>> I wanted to get rid of the "Please come back later" error page, so I 
>> defined my own finalize_error() in MyApp.pm as mentioned in this post:
>>
>> http://www.mail-archive.com/catalyst@lists.rawmode.org/msg04542.html
>>
>> It looks like:
>>
>> sub finalize_error {
>>   my ($self, $c) = @_;
>>
>>   $c->stash->{'template'} = 'error.tt2';
>>
>> }
>>
>> The "Please come back later" page no longer appears, but now the page 
>> is simply blank.  I've double checked to make sure the error.tt2 
>> template is accessible via Catalyst and it is, so I'm unsure where to 
>> go from here.
>>
> finalize_error is called long after the view processing has already been 
> done, if you want to use a template to put a page there, you have to 
> build your own Template object and process the template yourself.

Ah.  Great, thanks!  I got it to work with the following code:

sub finalize_error {
   my ($c) = @_;

   $c->response->content_type('text/html; charset=utf-8');
   $c->response->body($c->view('Website')->render($c, 'error.tt2'));
   $c->response->status(500);

}

-- 
Jim Spath
Lead Developer
Pangea Media
Em: jspath at pangeamedia.com
Ph: 617.314.6687
Fx: 617.390.7824
IM: panJimS (AIM)



More information about the Catalyst mailing list