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 相关文章推荐
留言板翻页的实现详解
Oct 09 PHP
mysql5写入和读出乱码解决
Nov 25 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
php常用数学函数汇总
Nov 21 PHP
PHP-FPM之Chroot执行环境详解
Aug 03 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
Mar 06 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
php事务回滚简单实现方法示例
Mar 28 PHP
php 读写json文件及修改json的方法
Mar 07 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 UBB 解析实现代码
2011/11/27 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
2012/07/25 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
vue教程之toast弹框全局调用示例详解
2020/08/24 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
python 中的列表解析和生成表达式
2011/03/10 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
Python装饰器用法实例总结
2018/05/26 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
flask框架路由常用定义方式总结
2019/07/23 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
html5桌面通知(Web Notifications)实例解析
2014/07/07 HTML / CSS
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
工程造价专业大学生自荐信
2013/10/01 职场文书
演讲稿开场白
2014/01/13 职场文书
元旦联欢会感言
2014/03/04 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书