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を見てみました。別記事に書きました。
コメントする