ZF3:投掷和捕获异常

时间:2017-09-28 08:09:43

标签: php zend-framework exception-handling zend-framework3

在我的IndexController indexAction中,我试图抛出并捕获异常,然后在catch块中,我想做一些事情,如下:

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;

class IndexController extends AbstractActionController {
    public function indexAction() {
        try {
            throw new \Exception('My exception error messag.');
        } catch(Exception $e) {
            echo '111';
            exit;
        }
    }
}

抛出异常时,不是打印“111”并停止,而是使用我抛出的异常消息“我的异常错误”呈现视图“myproject / module / Application / src / view / error / index.phtml” messag”。如下面的截图:

enter image description here

我在“myproject / config / development.config.php”中发现我有这样的事情:

return [
    'view_manager' => [
        'display_exceptions' => true,
    ],
];

我尝试将其更改为false,我得到了输出:

enter image description here

这意味着它仍然显示错误/索引视图,但它不显示异常详细信息

我想要的只是“111”的输出。

1 个答案:

答案 0 :(得分:1)

答案是@Gordon here。我不会删除这个问题并在这里回答,因为那个问题和答案是关于ZF2而这个是关于ZF3。

就像ZF2一样,问题与命名空间有关。

try {
    throw new \Exception('My exception error messag.');
} catch(\Exception $e){// <<< Use \Exception instead of Exception
    echo 111;
    exit;
}

或者像Gordon说的那样,use \Exception;位于文件顶部,因此我们可以用Exception替换\ Exception。