独自のエラー処理をインストールすることから始めることができます。PHP エラーを例外に変換するもの。スクリプトの先頭で実行してください。このようなもの:
/*
|--------------------------------------------------------------------------
| Alternative error handler
|--------------------------------------------------------------------------
|
| See: http://php.net/manual/en/function.set-error-handler.php
|
*/
function my_error_handler($errno, $errstr, $errfile, $errline)
{
if (!(error_reporting() & $errno))
{
// This error code is not included in error_reporting
return;
}
throw new ErrorException( $errstr, $errno, 0, $errfile, $errline );
}
ini_set('display_errors', FALSE);
set_error_handler("my_error_handler");
これで、メインのエラー処理メカニズムとして例外を使用できるようになりました。あとは、スクリプトの適切な場所で例外をキャッチし、自分でエラーを表示するだけです。
このメカニズムを拡張して、アサート処理も含めることができます。
/*
|--------------------------------------------------------------------------
| Assert handling
|--------------------------------------------------------------------------
|
| See: http://php.net/manual/en/function.assert.php
|
*/
function my_assert_handler($file, $line, $code)
{
throw new Exception( "assertion failed @$file::$line($code)" );
}
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_BAIL, 0);
assert_options(ASSERT_QUIET_EVAL, 0);
assert_options(ASSERT_CALLBACK, 'my_assert_handler');
そして、PHP が Java や C++ ではないことを受け入れてください。それは一貫性のない混乱です。