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安装全攻略:APACHE
Oct 09 PHP
用文本作数据处理
Oct 09 PHP
PHP 常用函数库和一些实用小技巧
Jan 01 PHP
关于php正则匹配汉字的方法介绍
Apr 25 PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 PHP
php 截取GBK文档某个位置开始的n个字符方法
Mar 08 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
YII框架模块化处理操作示例
Apr 26 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
Jul 15 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
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
Javascript 汉字字节判断
2009/08/01 Javascript
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
原生js代码能实现call和bind吗
2019/07/31 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
django中send_mail功能实现详解
2018/02/06 Python
Python中的 enum 模块源码详析
2019/01/09 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
大三学生学年自我鉴定
2014/09/12 职场文书
创业计划书介绍
2019/04/24 职场文书
MySQL主从切换的超详细步骤
2022/06/28 MySQL