php设定错误和异常处理可使用的函数
2016-05-25 17:43
537 查看
register_shutdown_function
使用场景:当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,这个函数会被调用。
函数介绍:
void register_shutdown_function(callback $callback[.mixed $parameter]);
Registers a callback to be executed after script execution finishes or exit() is called.
下面我们看一个例子:
*报错如下*
我们使用这个函数后的代码如下:
*执行结果*
推荐阅读>>
PHP register_shutdown_function函数的深入解析
PHP register_shutdown_function函数详解
set_error_handler()
使用场景:该函数用于创建运行期间的用户自己的错误处理方法。
可以用来屏蔽错误信息,防止将一些信息暴露给用户;可以记录错误信息,即使发现生产环境出现的问题;可以做相应的处理,出错时可以显示跳转到预先定义好的出错页面,提供更好的用户体验;可以作为调试工具。
使用方法:
set_error_handler(error_function,error_types);
error_function:必须,规定发生错误时运行的函数
error_types:可选,规定在哪个错误报告级别会显示用户定义的错误,默认是"E_ALL".
提示:如果使用了该函数,会完全绕过标准的PHP错误处理函数,如果必要,用户定义的错误处理程序必须终止(die())脚本。
注释:如果在脚本执行前发生错误,由于那时自定义程序还没注册,将不会用到这个自定义错误处理程序。
下面上一个简单的代码:
*结果*
具体实现,强烈推荐阅读下面这篇文章,总结的很详细>>PHP set_error_handler()函数的使用
set_exception_handler()
使用场景:该函数用于创建运行时期间的用户自己的异常处理方法
函数定义:string set_exception_handler ( callback $exception_handler )
参数:必须,规定未捕获的异常发生时调用的函数
说明:该函数必须在调用set_exception_handler()函数之前定义。这个异常处理函数需要一个参数,即抛出的exception对象
提示和注释:在这个异常处理程序被调用后,脚本会停止执行。
下面甩出代码:
<?php
function exception_handler($exception) {
echo "Uncaught exception: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');
throw new Exception('Uncaught Exception');
echo "Not Executed\n";
推荐阅读>>http://php.net/manual/en/function.set-exception-handler.php
使用场景:当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,这个函数会被调用。
函数介绍:
void register_shutdown_function(callback $callback[.mixed $parameter]);
Registers a callback to be executed after script execution finishes or exit() is called.
下面我们看一个例子:
<?php //只有一行代码的脚本 require_once '123';
*报错如下*
我们使用这个函数后的代码如下:
<?php /** * 在脚本开始处设置一个标识$flag为false。 * 当程序执行到末尾,令其为true。 * 如果在执行过程中发生了错误而调用register_shutdown_function函数 * 那么这个标识位仍然为false。以此来判断是否发生错误。 * */ $flag = false; // 此函数用于判断是否发生错误 function callError(){ global $flag; if($flag==true){ echo "正常!"; }else{ die("我错了,呜呜呜"); } return false; } register_shutdown_function(callError()); //制造致命错误 require_once '123'; $flag = true;
*执行结果*
我错了,呜呜呜
推荐阅读>>
PHP register_shutdown_function函数的深入解析
PHP register_shutdown_function函数详解
set_error_handler()
使用场景:该函数用于创建运行期间的用户自己的错误处理方法。
可以用来屏蔽错误信息,防止将一些信息暴露给用户;可以记录错误信息,即使发现生产环境出现的问题;可以做相应的处理,出错时可以显示跳转到预先定义好的出错页面,提供更好的用户体验;可以作为调试工具。
使用方法:
set_error_handler(error_function,error_types);
error_function:必须,规定发生错误时运行的函数
error_types:可选,规定在哪个错误报告级别会显示用户定义的错误,默认是"E_ALL".
提示:如果使用了该函数,会完全绕过标准的PHP错误处理函数,如果必要,用户定义的错误处理程序必须终止(die())脚本。
注释:如果在脚本执行前发生错误,由于那时自定义程序还没注册,将不会用到这个自定义错误处理程序。
下面上一个简单的代码:
<?php /** * 下面为自定义的错误处理函数 * 注意注意再注意:这个函数一定要有四个输入变量$errno,$errstr,$errfile,$errline * */ function my_error_handler($errno,$errstr,$errfile,$errline) { //在这里,就不做具体的错误处理了,咱们看一下传入的参数都是什么吧 var_dump($errno); var_dump($errstr); var_dump($errfile); var_dump($errline); die("出错了,结束吧!"); } set_error_handler("my_error_handler"); require '123';
*结果*
int 2 string 'require(123): failed to open stream: No such file or directory' (length=62) string 'C:\works\wamp\www\test\TP\1.php' (length=31) int 16 出错了,结束吧!
具体实现,强烈推荐阅读下面这篇文章,总结的很详细>>PHP set_error_handler()函数的使用
set_exception_handler()
使用场景:该函数用于创建运行时期间的用户自己的异常处理方法
函数定义:string set_exception_handler ( callback $exception_handler )
参数:必须,规定未捕获的异常发生时调用的函数
说明:该函数必须在调用set_exception_handler()函数之前定义。这个异常处理函数需要一个参数,即抛出的exception对象
提示和注释:在这个异常处理程序被调用后,脚本会停止执行。
下面甩出代码:
<?php
function exception_handler($exception) {
echo "Uncaught exception: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');
throw new Exception('Uncaught Exception');
echo "Not Executed\n";
推荐阅读>>http://php.net/manual/en/function.set-exception-handler.php
相关文章推荐
- php5.4之后安装xhprof出现make: * [xhprof.lo] Error 1
- PHP Closure类Bind与BindTo方法
- php中密码的加密处理及安全措施
- SMTP错误码/建议解决方法
- 学习php 韩顺平 数据类型 三元运算,字符串运算类型运算
- php 图片上传预览(转)
- php 如何写入、读取word,excel文档
- PHP......会话控制SESSION与COOKIE
- PHP json_encode中文乱码解决方法
- php-5.3 zend opcache 的设置
- FTP命令全集
- php的错误级别
- php笔记(3)——字符串操作
- ftp服务详解
- Thinkphp 开启字段缓存后,生成字段缓存文件bug修改
- php执行多个存储过程(二)
- php 输出excel
- PHP下的购物车
- composer 安装yii插件 fontawesome
- php执行多个存储过程