PEAR::setErrorHandling()

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

Synopsis

require_once 'PEAR.php';

void PEAR::setErrorHandling ( integer $mode = = null , mixed $options = = null )

Description

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

Parameter

  • integer $mode - 以下の定数の1つ

    • PEAR_ERROR_RETURN 。 エラーが発生した場合、エラー生成メソッド(通常は raiseError()) から、PEAR_Error が返されます。

    • PEAR_ERROR_PRINTPEAR_ERROR_RETURN と同様の動作に加え、 エラーメッセージが出力されます。

    • PEAR_ERROR_TRIGGERPEAR_ERROR_RETURN と同様の動作に加え、 PEAR_Error のコンストラクタで、 PHP 組み込み関数 trigger_error() が エラーメッセージを添えてコールされます。

    • PEAR_ERROR_DIE 。 PEAR_Error の生成時に、エラーメッセージが出力され、 スクリプトが終了します。

    • PEAR_ERROR_CALLBACK エラーが発生した場合、 $options に指定されたコールバックが コールされます。

    • PEAR_ERROR_EXCEPTION 。 Zend Engine 2 が存在する場合、 PEAR_Error オブジェクトを使って例外がスローされます。

  • mixed $options - $options の値は $mode に依る

    • PEAR_ERROR_PRINT および PEAR_ERROR_DIE は、 エラーメッセージを出力する際に使われる 任意の printf() 形式の文字列をサポートします。 この整形文字列は、1つの %s を含み、 そこにエラーメッセージが挿入されます。 エラーメッセージやそのプレフィックスに示されていない有用な 情報をエラーメッセージに付加するために使用します。

    • PEAR_ERROR_TRIGGER には、 trigger_error() が使用するエラーレベル定数が 必要です( E_USER_NOTICE, E_USER_WARNING もしくは E_USER_ERRORが使用可能)。 指定されたエラーレベル定数が有効なものでなければ、 PHP の警告 (Warning) が生成されます。

    • PEAR_ERROR_CALLBACK。 コールバックは、PHP マニュアルの 擬似的な型 についてのセクションに記述の形式による関数名とします。 コールバックは、生成された PEAR_Error を引数に取ります。 指定されたコールバックが有効で無い場合、 PHP の警告 (Warning) が生成されます。

setErrorHandling の使用方法の例を示します。

<?php
require_once 'PEAR.php';
// ダミーのエラー定数
define('MYCLASS_ERROR_CODE'1);

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

// このエラーにはモードが設定されており、グローバルなエラー処理を上書きします。
$e PEAR::raiseError('return only'MYCLASS_ERROR_CODEPEAR_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);
?>
新規に PEAR_Error オブジェクトを生成し、 オプションでエラー処理手順を指定する (Previous) 一時的なエラー処理の通常化を行うエラーコードを指定する (Next)
Last updated: Thu, 24 Apr 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.