【发布时间】:2012-10-28 11:39:13
【问题描述】:
我已经用ZF 2.0.3 设置了ZendSkeletonApplication,但我无法在我的控制器中捕获异常。例如,如果我将以下代码放入module/Application/src/Application/Controller/IndexController.php:
public function indexAction() {
echo "BEFORE\n";
try {
throw new \Exception("My exception");
} catch (Exception $e) {
echo "Caught exception $e\n";
exit;
}
并访问我得到的页面:
BEFORE
An error occurred
An error occurred during execution; please try again later.
Additional information:
Exception
File:
module/Application/src/Application/Controller/IndexController.php:25
Message:
My exception
ViewModel 启动并显示异常,有效地阻止我捕获它。
如何在ZF2 控制器中捕获异常?
【问题讨论】:
-
是全局命名空间中的控制器吗?否则,您必须使用 \Exception 或捕获 \Exception
-
只是对您正在使用的异常处理方式的评论。我不愿意捕捉异常,因为那太笼统了。你基本上说的是“我打算处理这里可能发生的每一个可能的异常”。如果您的代码调用了其他可能引发异常的方法,而该代码又可能调用引发异常的代码,那么追踪原始错误的来源可能会变得非常困难。我建议对你所期望的每一种异常都使用一个 catch 块,而让其他一切都没有被捕获。
标签: php exception try-catch zend-framework2