php - 如何捕捉 ZF2 Controller 中的异常?

标签 php exception try-catch zend-framework2

我已经设置了 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/

相关文章:

php - 搜索词结构的最佳方式?

c# - 我怎么可能在空对象上调用 HasValue?

c++ - 是什么导致这种在 try block 展开期间抛出析构函数的奇怪行为?

php - PDOException 没有被捕获?

javascript - 存储文件夹层次结构 laravel

javascript - 在 laravel 5 中验证返回 false 时如何获取选项值的名称

c++ - c++中没有timeout_exception吗?

r - 什么是 R 中值 [[3L]](cond) 的误差?

php - codeigniter 3 - 缺少 css 文件

exception - 非详尽模式的更好异常(exception),以防万一