PEAR::setErrorHandling でエラー処理を行なう
2007-12-15-1: [PHP]
PEAR パッケージのエラー処理ですが、よくあるパターンとしては以下のような書き方をすると思います。
$result = $mdb->query('SELECT * FROM table');
if (PEAR::isError($result)) {
die($result->getMessage());
}
エラー処理の数が少ない場合はこれでいいのですが、多くなってくると可読性が悪くなります。
この場合、PEAR::setErrorHandling() を使うことで以下のように簡潔に書くことができます。
PEAR::setErrorHandling(PEAR_ERROR_DIE);
$mdb2->query('SELECT * FROM table');
// PEAR:isError() を使わなくていい
この書き方は、マニュアルによると「PEAR_Error の生成時に、エラーメッセージが出力され、スクリプトが終了します。」ということになります。
エラーが発生したら、ログを出力して終了したいという場合は、以下のようにコールバックを利用することができます。
PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'handleError');
function handleError($error)
{
require_once 'Log.php';
$log = &Log::singleton('file', 'error.log');
$log->err($error->getMessage());
exit('エラー');
}
$mdb2->query('SELECT * FROM table');
PEAR パッケージをよく使う場合には便利です。
- PEAR::setErrorHandling()
http://pear.php.net/manual/ja/core.pear.pear.seterrorhandling.php