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 相关文章推荐
PHP4和PHP5性能测试和对比 测试代码与环境
Aug 17 PHP
用PHP与XML联手进行网站编程代码实例
Jul 10 PHP
php中几种常见安全设置详解
Apr 06 PHP
PHP开发需要注意的安全问题
Sep 01 PHP
微盾PHP脚本加密专家php解密算法
Sep 13 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
php实现的漂亮分页方法
Apr 17 PHP
php使用sql server验证连接数据库的方法
Dec 25 PHP
PHP生成随机字符串(3种方法)
Sep 25 PHP
WordPress主题制作之模板文件的引入方法
Dec 28 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
Feb 26 PHP
php中的依赖注入实例详解
Aug 14 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
用PHP写的MySQL数据库用户认证系统代码
2007/03/22 PHP
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
php如何获取文件的扩展名
2015/10/28 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
python获取指定网页上所有超链接的方法
2015/04/04 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
python保留格式汇总各部门excel内容的实现思路
2020/06/01 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
美术师范毕业生自荐信
2013/11/16 职场文书
机工车间主任岗位职责
2014/03/05 职场文书
中班幼儿评语大全
2014/04/30 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
售后客服个人自我评价
2014/09/14 职场文书
公司慰问信范文
2015/03/23 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
高三语文教学反思
2016/02/16 职场文书