错误处理器、错误触发器
【错误级别】
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(); } ?>