基底クラス 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-2008 BBB All rights reserved.