基底クラス PEARの関数にraiseErrorという関数があります。この関数を使って例外を 発生(例外オブジェクトを作成)させることが出来ます。
生成されるオブジェクトは、基本的にPEAR_ErrorオブジェクトになりますがPEAR_Error に類するメッセージを持たないカスタムオブジェクトを指定することも出来ます。
カスタムオブジェクトを指定するには、コンストラクタでそのクラスを指定します。
//PEARクラスのコンストラクタ function PEAR($error_class = null) { if ($error_class !== null) { $this->_error_class = $error_class; } }
このカスタムオブジェクトの指定は、raiseErrorの引数によって切り分けられています。
function &raiseError($message = null, $code = null, $mode = null, $options = null, $userinfo = null, $error_class = null, $skipmsg = false) { if ($error_class !== null) { $ec = $error_class; } elseif (isset($this) && isset($this->_error_class)) { $ec = $this->_error_class; } else { $ec = 'PEAR_Error'; } if ($skipmsg) { $a = &new $ec($code, $mode, $options, $userinfo); return $a; } else { $a = &new $ec($message, $code, $mode, $options, $userinfo); return $a; } }
ドキュメントにもあるのですが、$skipmsgとカスタムオブジェクトの指定を正しく指定 しないと動作しなさそうです。
raiseErrorは、エラーオブジェクトを返し、$skipmsgをtrueに指定する場合、コンスト ラクタ又は$error_classパラメータにメッセージを取らないカスタムオブジェクトを指 定する必要がある。
Copyright 1997-2010 BBB All rights reserved.