PEAR::setErrorHandling()

PEAR::setErrorHandling() --  PEAR パッケージにより生成されるエラーの処理方法を指定する

概要

require_once 'PEAR.php';

void PEAR::setErrorHandling ([integer $mode = NULL [, mixed $options = NULL]])

説明

setErrorHandling() は、普通のオブジェクトメソッド ($obj->setErrorHandling) としても、スタティックメソッド (PEAR::setErrorHandling) としてもコールできます。 スタティックにコールされた場合、すべての PEAR オブジェクトに対する デフォルトのエラー処理動作を設定します (グローバルなエラー処理動作)。 オブジェクトメソッドとしてコールされた場合、 $obj->setErrorHandling() は、そのオブジェクトだけに対して デフォルトのエラー処理動作を設定します (ローカルなエラー処理動作)。

パラメータ

setErrorHandling の使用方法の例を示します。
<?php
require_once 'PEAR.php';
// ダミーのエラー定数
define('MYCLASS_ERROR_CODE', 1);

// デフォルトのグローバルなエラー処理いついての実例
// この場合、すべての PEAR エラーはPHP の警告 (Warning) を生成します。
PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_WARNING);
// ファイルと行番号が PEAR.php の PEAR_Error のコンストラクタで
// 処理されます。
PEAR::raiseError('test warning', MYCLASS_ERROR_CODE);

// このエラーにはモードが設定されており、グローバルなエラー処理を上書きします。
$e = PEAR::raiseError('return only', MYCLASS_ERROR_CODE, PEAR_ERROR_RETURN);

PEAR::setErrorHandling(PEAR_ERROR_PRINT, "Gronk error: %s<br />\n");

// "Gronk error: test warning<br />\n" を出力します。
PEAR::raiseError('test warning', MYCLASS_ERROR_CODE);

/**
 * Fake class to demonstrate error handling
 * @package myClass
 */
class myClass extends PEAR {
    /**
     * ローカルなエラー処理のデフォルトの実例
     */
    function myClass()
    {
        // オブジェクトメソッドのコールバック
        $this->setErrorHandling(PEAR_ERROR_CALLBACK, array(&$this, 'handleErr'));
        // "custom handler...is working" を出力
        PEAR::raiseError('custom handler', MYCLASS_ERROR_CODE);
        // スタティッククラスメソッドのコールバック
        $this->setErrorHandling(PEAR_ERROR_CALLBACK,
            array('myClass', 'handleErrStatic'));
        PEAR::raiseError('custom handler', MYCLASS_ERROR_CODE);
        // 関数のコールバック
        $this->setErrorHandling(PEAR_ERROR_CALLBACK, 'standardCallback');
        PEAR::raiseError('custom handler', MYCLASS_ERROR_CODE);
    }

    /**
     * コンストラクタにより指定されるコールバック
     * @param PEAR_Error The error object
     */
    function handleErr($error)
    {
        $this->lastError = $error->getMessage();
        print $error->getMessage() . "...is working\n";
    }

    /**
     * コンストラクタにより指定されるスタティックなコールバック
     *
     * Note that in PHP 5, $this is not set if the method is declared with
     * the "static" access modifier.  In PHP 4, $this is set, but is not
     * set to the myClass object, so don't use it!
     * @param PEAR_Error The error object
     * @static
     */
    function handleErrStatic($error)
    {
        print 'static ' . $error->getMessage() . "...is working\n";
    }
}

/**
 * @param PEAR_Error The error object
 */
function standardCallback($error)
{
    print 'normal function callback: ' . $error->getMessage();
}

// エラー用コールバックを通じて以下の3つのメッセージが出力されます。
// "custom handler...is working"
// "static custom handler... is working"
// "normal function callback: custom handler"
$mine = new myClass;

PEAR::setErrorHandling(PEAR_ERROR_DIE);
// "oops" というエラーメッセージを出力し、スクリプトを終了させます。
PEAR::raiseError('oops', MYCLASS_ERROR_CODE);
?>