Когда я пишу / поддерживаю веб-приложение, написанное на Perl с использованием CGI.pm, как я должен обрабатывать ошибки (исключения)? Рассматриваемое веб-приложение может быть развернуто как простое приложение CGI, как приложение FastCGI (с использованием CGI :: Fast) и как приложение mod_perl с использованием обработчика ModPerl :: Registry.
Я имею в виду обработку ошибок, таких как страница не найдена, или конфигурация запрещает данное действие, или какая-то внешняя команда, используемая в приложении, не выполнена (например, не удается подключиться к базе данных).
Редактировать: добавлено 2010-12-14 .
Пример кода может выглядеть следующим образом:
sub run {
...
run_request();
...
}
sub run_request {
...
$actions{$cgi->param('a')}->();
...
}
sub action_foo {
foo_body()
}
sub foo_body {
check_something()
or handle_error(some description);
}
Я имею в виду, что ошибка может быть вызвана или обработана в каком-то вложенном вызове, а не только в обработчике действий / обработчике маршрута.