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
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);
?>