set_exception_handler函数在ThinkPHP中的用法


Posted in PHP onOctober 31, 2014

本文实例讲述了set_exception_handler函数在ThinkPHP中的用法。分享给大家供大家参考。具体方法如下:

函数:

string set_exception_handler ( callback $exception_handler )

定义和用法:
set_exception_handler() 函数设置用户自定义的异常处理函数。
该函数用于创建运行时期间的用户自己的异常处理方法。
该函数会返回旧的异常处理程序,若失败,则返回 null。

语法:
set_exception_handler(exception_function)

参数 描述
error_function 必需。规定未捕获的异常发生时调用的函数。 该函数必须在调用 set_exception_handler() 函数之前定义。 这个异常处理函数需要需要一个参数,即抛出的 exception 对象。

提示和注释:

提示:在这个异常处理程序被调用后,脚本会停止执行。

同样是在看TP代码的时候发现的这个函数,就想不明白了,自己以前咋就没关心过这些东西呢?(捶胸顿足ing。。。)
继续来看一下TP是怎么实现的,呃,为啥一定要用TP呢,嗯。那好吧,一会儿我把手册的例子也搬过来。

public function appException($e)

{

        halt($e->__toString());

}

set_exception_handler(array(&$this,"appException"));

呵呵,这个简单吧?因为我没有给出halt这个方法的实现,这样就足够了。
再看手册中的例子,
function exception_handler($exception) {

  echo "Uncaught exception: " , $exception->getMessage(), "n";

}

set_exception_handler('exception_handler');

throw new Exception('Uncaught Exception');

echo "Not Executedn";

其实呢,set_exception_handler就是设置了一下,当你的程序需要抛出一个异常的时候调用哪个自定义的函数。
就这么简单

注意事项:
set_exception_handler(“myException”) 不仅可以接受函数,还可以接受 类的方法(公开的静态方法 及 公开的非静态方法 都可以),但需要以 数组形式 传递,数组的第一值为“类名”,第二个参数为“方法名”

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

PHP 相关文章推荐
PHP面向对象编程快速入门
Oct 09 PHP
php 5.3.5安装memcache注意事项小结
Apr 12 PHP
php 求质素(素数) 的实现代码
Apr 12 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
php和javascript之间变量的传递实现代码
Dec 19 PHP
关于file_get_contents返回为空或函数不可用的解决方案
Jun 24 PHP
linux实现php定时执行cron任务详解
Dec 24 PHP
php支付宝手机网页支付类实例
Mar 04 PHP
四个PHP非常实用的功能
Sep 29 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
实例讲解PHP表单验证功能
Feb 15 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 23 PHP
php使用fopen创建utf8编码文件的方法
Oct 31 #PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 #PHP
PHP页面实现定时跳转的方法
Oct 31 #PHP
Thinkphp多文件上传实现方法
Oct 31 #PHP
Laravel 4 初级教程之Pages、表单验证
Oct 30 #PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 #PHP
Laravel 4 初级教程之安装及入门
Oct 30 #PHP
You might like
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
PHP图片自动裁切应付不同尺寸的显示
2014/10/16 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
js使用formData实现批量上传
2020/03/27 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
毕业生教师求职信
2013/10/20 职场文书
工业自动化专业毕业生推荐信
2013/11/18 职场文书
停车位租赁协议书
2014/09/24 职场文书
伏羲庙导游词
2015/02/09 职场文书
歌咏比赛主持词
2015/06/29 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
python实现简单的聊天小程序
2021/07/07 Python
宝塔更新Python及Flask项目的部署
2022/04/11 Python