The following snippet installs an error-handler that turns errors into exceptions. It respects error-reporting level, so that you can still use error-suppression:
<?php
function exceptions_error_handler($severity, $message, $filename, $lineno) {
if (error_reporting() == 0) {
return;
}
if (error_reporting() & $severity) {
throw new ErrorException($message, 0, $severity, $filename, $lineno);
}
}
set_error_handler('exceptions_error_handler');
?>
ErrorException
導入
エラー例外です。
クラス概要
ErrorException
ErrorException
extends
Exception
{
/* プロパティ */
/* メソッド */
public ErrorException::__construct
([ string $message
[, int $code
[, int $severity
[, string $filename
[, int $lineno
]]]]] )
/* 継承したメソッド */
}プロパティ
- severity
-
例外の深刻度
例
例1 すべてのエラーメッセージを ErrorException に変換する
<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");
/* 例外を発生させます */
strpos();
?>
上の例の出力は、たとえば 以下のようになります。
Fatal error: Uncaught exception 'ErrorException' with message 'Wrong parameter count for strpos()' in /home/bjori/tmp/ex.php:8 Stack trace: #0 [internal function]: exception_error_handler(2, 'Wrong parameter...', '/home/bjori/php...', 8, Array) #1 /home/bjori/php/cleandocs/test.php(8): strpos() #2 {main} thrown in /home/bjori/tmp/ex.php on line 8
目次
- ErrorException::__construct — 例外を作成する
- ErrorException::getSeverity — 例外の深刻度を取得する
ErrorException
troelskn at gmail dot com
29-Jul-2008 08:08
29-Jul-2008 08:08
