[Zend Framework] Zend_Controller: エラーハンドラプラグインのふるまい
ErrorController を確認しながら、例外処理まわりについて調べていきます。
Zend Framework Version: 1.12.3
例外が発生すると、標準で設定されているエラーハンドラープラグインの働きにより、ErrorController という例外処理の専用コントローラに送られます。
Zend_Controller_Plugin_ErrorHandler は、アプリケーションからスローされた例外を処理するためのプラグインです。 たとえば、指定したコントローラやアクションが見つからないといったエラーを処理します。 これは、MVC の例外についてのセクション で説明したメソッド群の代わりとして使用できます。
このプラグインが主に対象としているのは、次のような例外です。
- 一致したルートが見つからない場合に発生する例外
- コントローラやアクションメソッドが見つからない場合に発生する例外
- アクションコントローラ内で発生する例外
言い換えると、ErrorHandler プラグインが想定しているのは、HTTP 404 型のエラー (ページが存在しない) と 500 型のエラー (内部エラー) ということになります。 他のプラグインで発生した例外の処理は、想定していません。
例えば、プログラム内で処理しきれない時には、Zend_Exception をつかって例外を発生させます。これにより ErrorController に例外処理を集約できます。
ブートストラップやエラーハンドラプラグインの登録前に例外が発生してもエラーハンドラプラグインは機能しないそう。別途用意が必要なようです。
補遺
プラグインとリソースプラグインは別物ってことですよね。混同してました。