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