8

我已经设置了ZendSkeletonApplicationZF 2.0.3但我无法在我的控制器中捕获异常。例如,如果我将以下代码放入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控制器中捕获异常?

4

1 回答 1

34

您正在抛出 PHP 的通用异常

throw new \Exception("My exception");

但是您从当前命名空间中捕获了异常

} catch (Exception $e) {

假设你的控制器在Application\Controller,你要么必须声明

use \Exception;

在您的类上方将全局异常导入当前命名空间或

} catch (\Exception $e) {

捕获 PHP 的全局异常。

于 2012-10-28T11:57:35.153 回答