PHP用set_error_handler()拦截程序中的错误
2014-03-11 09:32
369 查看
PHP用set_error_handler()拦截程序中的错误
字号:小
中
大
作者:JeffJing发布:2011-05-3008:05围观:16,903views
1条评论
一个很有用的函数,
set_error_handler()顾名思义,自定义错误的处理。很有用的函数:
可以用来
可以记下错误的信息,及时发现一些生产环境的出现的问题。
可以做相应的处理,出错的时候可以显示跳转到预先定义好的出错页面,提供更好的用户体验。
可以作为调试工具,一些时候必须在生产环境调试一些东西,但又不想影响正在使用的用户。
。。。。
废话不多说,上代码:
01 | <?php |
02 | //屏蔽程序中的错误 |
03 | error_reporting (0); |
04 |
05 | //定义Error_Handler函数 |
06 | /** |
07 | *定义Error_Handler函数 |
08 | * |
09 | *@param$error_level错误级别 |
10 | *@param$error_message错误信息 |
11 | *@param$file错误所在文件 |
12 | *@param$line错误所在行数 |
13 | * |
14 | */ |
15 | function error_handler( $error_level , $error_message , $file , $line ){ |
16 |
17 | $EXIT =FALSE; |
18 |
19 | switch ( $error_level ){ |
20 | //提醒级别 |
21 | case E_NOTICE: |
22 | case E_USER_NOTICE: |
23 | $error_type = 'Notice' ; |
24 | break ; |
25 |
26 | //警告级别 |
27 | case E_WARNING: |
28 | case E_USER_WARNING: |
29 | $error_type = 'Warning' ; |
30 | break ; |
31 |
32 | //错误级别 |
33 | case E_ERROR: |
34 | case E_USER_ERROR: |
35 | $error_type = 'FatalError' ; |
36 | $EXIT =TRUE; |
37 | break ; |
38 |
39 | //其他未知错误 |
40 | default : |
41 | $error_type = 'Unknown' ; |
42 | $EXIT =TRUE; |
43 | break ; |
44 | } |
45 | //直接打印错误信息,也可以写文件,写数据库,反正错误信息都在这,任你发落 |
46 | printf( "<fontcolor='#ff0000'><b>%s</b></font>:%sin<b>%s</b>online<b>%d</b><br/><br/>\n" , $error_type , $error_message , $file , $line ); |
47 |
48 | //错误影响到程序的正常执行的话跳转到友好的错误提示页面 |
49 | if (TRUE== $EXIT ){ |
50 | echo "<scriptlanguage='Javascript'>location='err.html';</script>" ; |
51 | } |
52 |
53 | } |
54 | //这个才是关键点,把错误的处理交给error_handler() |
55 | set_error_handler( 'error_handler' ); |
56 |
57 | #使用未定义的变量要报notice的 |
58 | echo $novar ; |
59 | #除以0要报警告的 |
60 | echo 3/0; |
61 | #自定义一个错误 |
62 | trigger_error( 'Triggerafatalerror' ,E_USER_ERROR); |
相关文章推荐
- PHP用set_error_handler()拦截程序中的错误
- PHP错误处理函数set_error_handler()的用法[转载]
- PHP中的错误处理set_error_handler()与trigger_error()的问题
- PHP错误处理函数set_error_handler()的用法
- PHP 使用回调函数(set_error_handler)处理异常和错误
- PHP 错误与异常 笔记与总结(8)自定义错误处理函数 set_error_handler()
- PHP 的异常处理、错误处理:error_reporting,try-catch,trigger_error,set_error_handler,set_exception_handler,register_shutdown_function
- PHP 的异常处理、错误处理:error_reporting,try-catch,trigger_error,set_error_handler,set_exception_handler,regis
- PHP中set error handler函数用法小结
- <<< php程序在运行后报“internal server error”错误
- PHP - set_error_handler()函数
- WIN32程序挂钩SetLastError,输出错误描述到控制台
- 阿里云服务器错误:500-内部服务器错误,500.21 - Internal Server Error处理程序“PageHandlerFactory-Integrated”
- WIN32程序挂钩SetLastError,输出错误描述到控制台
- php set_error_handler() 重要用法
- HTTP 错误 500.21 - Internal Server Error 处理程序“ExtensionlessUrlHandler-ISAPI-4.0_64bit”在其模块列表中有一个错误模块“IsapiModule” 解决方法
- HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipe
- WIN32程序挂钩SetLastError,输出错误描述到控制台
- WIN32程序挂钩SetLastError,输出错误描述到控制台
- 解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示