基底クラス PEARの例外処理 その3 [handling]
基底クラス PEAR の関数に setErrorHandling という生成されたエラーの処理方法を指定する関数があります。この関数を読んでみます。
まず目に付くのが最初のif文です。
function setErrorHandling($mode = null, $options = null)
{
if (isset($this) && is_a($this, 'PEAR')) {
$setmode = &$this->_default_error_mode;
$setoptions = &$this->_default_error_options;
} else {
$setmode = &$GLOBALS['_PEAR_default_error_mode'];
$setoptions = &$GLOBALS['_PEAR_default_error_options'];
}
//...
}
この関数は、スタティックにも呼ぶことができ、スタティックにコールされた場合すべての PEAR オブジェクトに対するデフォルトのエラー処理動作を設定します。
オブジェクトのメソッドとしてコールされた場合、$obj->setErrorHandling()は、そのオブジェクトだけに対してデフォルトのエラー処理動作を設定します。
注意しないといけないのは、$setmode及び$setoptionに格納されるのは、参照ということです。
それぞれの設定は、次のようにされています。
$GLOBALS['_PEAR_default_error_mode'] = PEAR_ERROR_RETURN;
$GLOBALS['_PEAR_default_error_options'] = E_USER_NOTICE;
//メンバ変数として定義
var $_default_error_mode = null;
var $_default_error_options = null;
あとは、引数の$modeによって動作が決定されます。