【发布时间】:2010-12-13 09:06:57
【问题描述】:
在使用 CGI.pm 编写/维护用 Perl 编写的 Web 应用程序时,我应该如何处理错误(异常)?有问题的 Web 应用可以部署为普通 CGI 应用、FastCGI 应用(使用 CGI::Fast)和使用 ModPerl::Registry 处理程序的 mod_perl 应用。
我的意思是在这里处理错误,例如找不到页面,或配置禁止给定操作,或应用程序中使用的某些外部命令失败(例如无法连接到数据库)。
编辑: 添加于 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);
}
我的意思是,错误可能必须在某些嵌套调用中抛出/处理,而不仅仅是在动作处理程序/路由处理程序中。
【问题讨论】:
-
我一直很喜欢 CGI::Prototype 处理这类事情的方式。在流量控制的任何时候,您都可以有效地切换路由。一般来说,这是一个很难回答的问题,因为这是一个设计和架构问题,而且不同的框架对事情应该如何发生有不同的想法。也许你可以提出一个更狭隘的问题?
-
@casperOne - 当您(作为版主)删除其他答案时,请非常友好并以确切的理由对该答案添加评论。现在看起来你只是#Briandfoy 的追随者之一,因为他检查我的每一步(我不介意)。
标签: perl web-applications cgi