モンスターカレンダー

« 2004年9月 »
123456789101112131415161718192021222324252627282930

PEARのERRORの拾い方

| コメント(0)

PEARは本当に便利でいくつか使っているが、エラーの拾い方がよく分からなかった。

DBに関しては雑誌にもネットにもあって

$db = DB::connect($dsn);
if (PEAR::isError($this->db)) {
 $reason = $db->getMessage();
 return;
}

と、$dbオブジェクト自体をisErrorしていた。

DB_DataObjectなども同じかと思いそのように書いていたら実は違っていた。

$user = DB_DataObject::factory("m_user");
if (PEAR::isError($user->_lastError)) {
 $reason = $user->_lastError->getMessage();
 return;
}

と、$user->_lastError がPEARのエラーオブジェクトだった。。。

print_r($user);

としてみて、初めて知った事実(--;;

PEARは資料が少くて。。。。やってみて初めて分かる、またはソースをみて初めて分かるってことが多い。それでも徐々に情報は出てきているのだけど。

ちょっと気になるのが 「_(アンダースコア)」付きのメソッド(プロパティ)ってプライベートなのか。。外から呼んじゃいけないのか。。。。でも他に呼ぶ手立てが、ない。はず。

(前ブログでのコメント 2004/09/07 04:44 PM bGさん

こんにちは、いつも見させてもらってます!

DB_DataObjectのfactoryメソッドを見てみるとオブジェクト作成に失敗した場合はraiseErrorしてreturnしてる気がします。

$user = DB_DataObject::factory("m_user");
if (PEAR::isError($user)) {
 echo $user->getMessage();
}


(前ブログでの筆者コメント)

コメントありがとうございます! ダイレクトに意見をいただけるのは嬉しいですね。
DB_DataObject.phpを見てみました。別記事に書きました。

コメントする