PHPリファレンス(逆引き)

PHPリファレンス
 
エラー発生時の後処理を定義する(set_error_handler())
スポンサードリンク

エラー発生時の後処理を定義するには、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



スポンサード リンク


エラー出力レベルの設定( error_reporting )
エラー発生時の後処理を定義する( set_error_handler() )
デフォルト例外ハンドラを定義する( set_exception_handler() )
ユーザーエラーを発生させる( trigger_error()、user_error() )
エラーログを出力する( error_log() )
例外処理をする( try-catch )

PHP基本へ
忘れっぽいエンジニアのPHPリファレンス TOPへ