このクラスは 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 パッケージのソースを読めばよりよい使用法を見つけられるでしょう。