PEAR_Exception の使用法の概要
このクラスは PEAR パッケージ の一部であり、以下のような機能があります。
例外を入れ子状にできる (
<?php throw new PEAR_Exception($msg, $prev_exception); ?>
)。
Subject/Observer パターン。これは例外のインスタンスが作成された際に発動します。
すっきりしており、詳しくて見栄えがいいエラーメッセージ。
組み込みの例外クラスに比べて、より多くの情報を使用可能。 例えば、例外が発生した原因 (PEAR_Error/PEAR_ErrorStack/その他の例外) など。
例外の原因としては、PEAR_Error オブジェクトあるいは PEAR_Exception オブジェクト、そして PEAR_Exceptions/PEAR_ErrorStack などの配列が設定できます。
指定した例外クラスおよびその子クラスに対するコールバック。
使用例です。
<?php
require_once 'PEAR/Exception.php';
class Test {
function foo() {
throw new PEAR_Exception('エラーメッセージ', ERROR_CODE);
}
}
function myLogger($pear_exception) {
echo $pear_exception->getMessage();
}
// 例外がスローされるたびに 'myLogger' がコールされます
// (これを使用するかどうかは任意です)
PEAR_Exception::addObserver('myLogger');
$test = new Test;
try {
$test->foo();
} catch (PEAR_Exception $e) {
print $e;
}
?>
API ドキュメントは、phpDocumentor で作成した PEAR パッケージのドキュメントに含まれます。このクラスは非常にシンプルなので、 PEAR パッケージのソースを読めばよりよい使用法を見つけられるでしょう。