in reply to Catching Template Toolkit Errors

I'm not sure I understand you problem. In CGI::App, the error is passed as a parameter to your error runmode:
sub error { my $self = shift; my $error = shift; # Do something with the error - e.g. write it to a log file $self->logger->error("Warning error: $error"); #.... and then provide friendly message to user }