基底クラス PEARの関数にraiseErrorという関数があります。この関数で返される PEAR_Errorクラスを読んでみます。
このクラスは、ほとんどの仕事をコンストラクタで行っています。
コンストラクタでは、メッセージやコード、ユーザ情報をメンバ変数に格納します。
//PEAR_Errorクラスのコンストラクタ(抜粋) function PEAR_Error($message = 'unknown error', $code = null, $mode = null, $options = null, $userinfo = null) { //.... $this->message = $message; $this->code = $code; $this->mode = $mode; $this->userinfo = $userinfo; //.... }
あとコンストラクタで行っているのが$modeの指定による動作の設定です。
例えば、$modeにPEAR_ERROR_CALLBACKが指定された場合、コールバック関数が 呼ばれます。
$modeには、次のようなものがあります。
もうひとつ目に付いたのが、debug_backtrace();関数です。
//PEAR_Errorクラスのコンストラクタ(抜粋) function PEAR_Error($message = 'unknown error', $code = null, $mode = null, $options = null, $userinfo = null) { //... if (function_exists("debug_backtrace")) { if (@!PEAR::getStaticProperty('PEAR_Error', 'skiptrace')) { $this->backtrace = debug_backtrace(); } } //... }
PEAR_ErrorクラスのgetBacktraceメンバ関数により実行履歴が連想配列として取得できます。
Copyright 1997-2010 BBB All rights reserved.