|
スポンサードリンク
エラー発生時の後処理を定義するには、set_error_handler()関数を使います。
set_error_handler(
エラー処理関数
[ , エラータイプ ] ) |
エラー処理関数を設定します。
エラータイプには、error_reporting()関数で表示するエラーを制御するのと全く同様に、エラー出力レベルのマスクを指定し、エラー処理関数の起動制御に使用されます。
エラータイプを指定しない場合は、エラー処理関数が全てのエラーで起動されます。
|
●エラー処理関数の定義
エラー処理関数(int errorno, String errstr [, String errfile [, int errline [, array errcontext]]] )
errorno : 発生したエラーのエラー出力レベル
errstr : 発生したエラーのエラーメッセージ
errline : エラーが発生したPHPスクリプト名
errcontext : エラーが発生したスコープ内での全ての変数を格納した配列。書換え不可
※set_error_handler()関数で変更した前のエラーハンドラ関数に戻すには、restore_error_handler()関数を使います
例1) ファイルオープンエラーのエラーハンドリング
<?php
function test_error_handler($errorno,$errstr,$errfile,$errline,$errcontext) {
switch ($errno) {
case E_ERROR:
echo "致命的エラー:" . $errorno . " エラーメッセージ:" . $errstr . "\n";
break;
default:
echo "その他のエラー エラーコード:" . $errorno . " エラーメッセージ:" . $errstr . "\n";
break;
}
}
set_error_handler("test_error_handler");
$fd = fopen("c:/temp/azz.txt","r");
?>
●実行結果
その他のエラー エラーコード:2 エラーメッセージ:fopen(c:/temp/azz.txt): failed
to open stream: No such file or directory
|
スポンサード リンク
|