PEAR_Exception を使用した、PHP 5+ における高度なエラー処理
PEAR_Exception を使用した、PHP 5+ における高度なエラー処理
–
PEAR_Exception の使用法
Synopsis
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 パッケージのソースを読めばよりよい使用法を見つけられるでしょう。