[Catalyst] Error handling

Matt S Trout dbix-class at trout.me.uk
Tue Oct 25 18:00:54 CEST 2005


On Tue, Oct 25, 2005 at 05:10:50PM +0200, Albert Vila wrote:
> 
> Sebastian Riedel wrote:
> >
> >Am 25.10.2005 um 16:27 schrieb Albert Vila:
> >
> >>
> >>Matt S Trout wrote:
> >>
> >>>On Mon, Oct 24, 2005 at 07:06:46PM +0200, Albert Vila wrote:
> >>>
> >>>
> >>>>Hello,
> >>>>
> >>>>I have a problem trying to configure my catalyst application in 
> >>>>order to do the error handling in the begin method.
> >>>>
> >>>>I have a controller with multiple functions, each function receives 
> >>>>the same parameter, and I wanna check the parameter integrity in 
> >>>>just one place.
> >>>>
> >>>>
> >>>
> >>>If you set $c->error in your 'sub begin' then dispatch should 
> >>>short-circuit
> >>>and jump straight to the end action afterwards.
> >>>
> >>>
> >>That's true, but catalyst shows the error screen instead of the 
> >>template in the stash.
> >
> >Thats right, you have to clean $c->{error} when you handle them manually!
> >
> There isn't a better approach to deal with this problem. Maybe modify 
> the Dispatcher.pm in order to set a flag in the detach method and modify 
> the dispatch method to check if this flag is on or off.

What's wrong with

sub MyApp::auto { my ($self, $c) = @_; return 0 if $c->stash->{myflag}; }

and you just set $c->stash->{myflag} as appropriate?

Or just use an auto action for this rather than begin, like everybody else
does :)

-- 
     Matt S Trout       Specialists in Perl consulting, web development, and
  Technical Director    UNIX/Linux systems architecture and automation. Mail
Shadowcat Systems Ltd.  mst (at) shadowcatsystems.co.uk for more information

 + Help us build a better perl ORM: http://dbix-class.shadowcatsystems.co.uk/ +



More information about the Catalyst mailing list