簡體   English   中英

如何捕獲ZF2控制器中的異常?

[英]How to catch exceptions in your ZF2 controllers?

我用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控制器中捕獲異常?

你正在拋出PHP的通用異常

throw new \Exception("My exception");

但是你從當前的命名空間中捕獲了Exception

} catch (Exception $e) {

假設您的控制器在Application\\Controller ,您必須聲明

use \Exception;

在您的類之上, 將全局Exception導入當前命名空間或

} catch (\Exception $e) {

捕獲PHP的全局異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM