错误处理器、错误触发器

【错误级别】

2  E_WARNING:非致命的run-time错误。不暂停脚本执行。
8  E_NOTICE:Run-time通知。脚本发现可能有错误发生,但也可能在脚本正常运行时发生。
256  E_USER_ERROR:致命的用户生成的错误。trigger_error()设置的E_ERROR。
512  E_USER_WARNING:非致命的用户生成的警告。trigger_error()设置的E_WARNING。
1024  E_USER_NOTICE:用户生成的通知。trigger_error()设置的E_NOTICE。
4096  E_RECOVERABLE_ERROR:可捕获的致命错误。类似E_ERROR,但可被用户定义的处理程序捕获。
8191  E_ALL:所有错误和警告。

 

1.错误处理器(语法错误,自定义的系统错误)【set_error_handler();】

<?php 

    function myError($errorNo, $errorMsg) {
        echo '错误行号:'.$errorNo;
        echo '错误信息:'.$errorMsg;
        exit();
    }

    set_error_handler("myError", E_WARNING);

    $fp = fopen("abc.txt", "r");
?>

 2.错误触发器(语法没错,自以为是的用户错误)【trigger_error(); error_log();】

<?php 

    function myError($errorNo, $errorMsg) {
        echo '错误行号:'.$errorNo;
        echo '错误信息:'.$errorMsg;

        date_default_timezone_set("PRC");

        $err_info = $errorNo.' -- '.$errorMsg;
        //"\r\n"表示回车换行
        error_log("时间是:".data("Y-m-d H-i-s")."--错误信息是:".$err_info."\r\n",3,"errLog.txt");
        exit();
    }

    set_error_handler("myError", E_USER_WARNING);

    $age=200;
    if($age>200) {
        trigger_error("输入年龄过大",E_USER_WARNING);
        exit();
    }

?>

 

posted @ 2014-10-29 21:18  ayee  阅读(342)  评论(0编辑  收藏  举报