CGI::Applicationでのエラー処理

CGI::Applicationでエラー処理をする際、
例えば、前にやった「CGI::Application::Dispatchを遊んでみる」
の例を使ってみると、

ただのエラー処理だとIndex.pmはこうなるんでないかな?


package Neko::Index;
use strict;
use warnings;
use base 'Neko';
sub setup {
my $self = shift;
$self->start_mode('index');
$self->error_mode('do_index_err');
$self->run_modes(
'index' => \&do_index,
);
}
sub do_index{
my $self = shift;
my $t = $self->load_tmpl('index.html',die_on_bad_params => 0,);
return $t->output;
}
sub do_index_err{
my $self = shift;
my $t = $self->load_tmpl('error.html',die_on_bad_params => 0,);
return $t->output;
}
1;

error_modeメソッドでエラー時に実行したいメソッドの定義をしておくと、
エラーになったときにerror_modeメソッドが実行されるって形ですね。
Class::ErrorHandlerを使えばエラーメッセージのやり取りが綺麗になるかねぇ。