[Zend Framework] Zend_Controller: エラーハンドラプラグインのふるまい

ErrorController を確認しながら、例外処理まわりについて調べていきます。
Zend Framework Version: 1.12.3

例外が発生すると、標準で設定されているエラーハンドラープラグインの働きにより、ErrorController という例外処理の専用コントローラに送られます。

Zend_Controller_Plugin_ErrorHandler は、アプリケーションからスローされた例外を処理するためのプラグインです。 たとえば、指定したコントローラやアクションが見つからないといったエラーを処理します。 これは、MVC の例外についてのセクション で説明したメソッド群の代わりとして使用できます。

このプラグインが主に対象としているのは、次のような例外です。

  • 一致したルートが見つからない場合に発生する例外
  • コントローラやアクションメソッドが見つからない場合に発生する例外
  • アクションコントローラ内で発生する例外

言い換えると、ErrorHandler プラグインが想定しているのは、HTTP 404 型のエラー (ページが存在しない) と 500 型のエラー (内部エラー) ということになります。 他のプラグインで発生した例外の処理は、想定していません。

例えば、プログラム内で処理しきれない時には、Zend_Exception をつかって例外を発生させます。これにより ErrorController に例外処理を集約できます。

ブートストラップやエラーハンドラプラグインの登録前に例外が発生してもエラーハンドラプラグインは機能しないそう。別途用意が必要なようです。

補遺

プラグインとリソースプラグインは別物ってことですよね。混同してました。