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 相关文章推荐
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
php curl_init函数用法
Jan 31 PHP
查找php配置文件php.ini所在路径的二种方法
May 26 PHP
PHP中使用addslashes函数转义的安全性原理分析
Nov 03 PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 PHP
学习php设计模式 php实现策略模式(strategy)
Dec 07 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
Laravel与CI框架中截取字符串函数
May 08 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
Apr 15 PHP
万能的php分页类
Jul 06 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将时间差转换为字符串提示
2011/09/07 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
php文件上传的简单实例
2013/10/19 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
javascript实现数据双向绑定的三种方式小结
2017/03/09 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
Python函数返回值实例分析
2015/06/08 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
如何使用python操作vmware
2019/07/27 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
如何客观的进行自我评价
2013/12/17 职场文书
2014年社区学雷锋活动总结
2014/03/09 职场文书
葬礼司仪主持词
2014/03/31 职场文书
车辆工程专业求职信
2014/06/14 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
见习报告怎么写
2014/10/31 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书