共享PHP的异常处理程序
< PHP
/ / exceptionhandle.php xiecongwen 20140620
/ /定义('debug ',真的);
*显示所有的错误application_env在发展。
* /
如果(定义('debug ')){
error_reporting(e_all);
ini_set(display_errors
}
如果(!定义('debug ')){
*当出现重大错误时,编写日志并提示用户友好。
*(ps:只是在这里编写代码,因为在其他地方注册时,这个问题不能称为配置函数。)。完善……)
* /
shutdownhandler()函数
{
*写日志是直接写在这里shutdownlog.txt根目录
* /
美元error_get_last LastError =();
如果($ LastError){
误差= strval美元(日期(当前H:我:))。= >。{ }拉特:关机。$ LastError {类型}。|味精:。消息} { $ LastError。|文件。文件{ } LastError美元。| LN:行} { $ LastError。;
file_put_contents('。 / /日志。日期(宜)。'shutdownlog .txt,为错误,file_append);
用户友好提醒
ob_end_clean();
死了(对不起,我弄错了!);
}
}
register_shutdown_function('shutdownhandler);
}
如果(!定义('debug ')){
功能程序($ errno,errstr美元==,errfile美元,美元errline = 0)
{
写日志
$例外=新 errorexception(errstr美元,0美元美元,errno,errfile,errline美元);
$味精= strval(日期(当前H:我:))。= >。:。geterrtypename($ errno)。getmsg(美元除外);
file_put_contents('。 / /日志。日期(宜)。错误。txt,为味精,file_append);
开关($ errno)
{
案例e_notice:返回;
案例e_deprecated:返回;
}
抛出$异常;
}
功能geterrtypename($ errno)
{
开关($ errno)
{
案例e_notice:return'e_notice;
案例e_deprecated:return'e_deprecated;
默认值:返回的错误;
}
}
功能异常处理(合前)
{
$味精= strval(日期(当前H:我:))。= >。getmsg(合前);
file_put_contents('。 / /日志。日期(宜)。'exception .txt,为味精,file_append);
}
功能getmsg(美元除外)
{
获得最精确的/不正常的
而($例外-> getprevious())$例外=美元例外-> getprevious();
味精=留言:美元。美元例外-> GetMessage();
$味精=文件:('。$例外-> GetFile):'。$例外-> getline()。;
返回味精;
}
set_error_handler('errorhandler ',e_all);
set_exception_handler('exceptionhandler);
}
>