8

ZendSkeletonApplicationをでセットアップしましたZF 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 に答える