我已经设置了 ZendSkeletonApplication使用 ZF 2.0.3
并且我无法在我的 Controller 中捕获异常。例如,如果我将下面的代码放在 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
Controller 中捕获异常?
最佳答案
您正在抛出 PHP 的通用异常
throw new \Exception("My exception");
但是你从当前命名空间捕获了异常
} catch (Exception $e) {
假设您的 Controller 在 Application\Controller
中,您要么必须声明
use \Exception;
在你的类(class)之上 import the global Exception进入当前命名空间或
} catch (\Exception $e) {
捕捉 PHP 的全局异常。
关于php - 如何捕捉 ZF2 Controller 中的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13108482/