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 相关文章推荐
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 PHP
如何设置mysql允许外网访问
Jun 04 PHP
深入分析php中接口与抽象类的区别
Jun 08 PHP
php缩小png图片不损失透明色的解决方法
Dec 25 PHP
教你如何解密 “ PHP 神盾解密工具 ”
Jun 20 PHP
PHP curl实现抓取302跳转后页面的示例
Jul 04 PHP
php实现RSA加密类实例
Mar 26 PHP
浅谈PHP Cookie处理函数
Jun 10 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 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实现的折半查询算法示例
2017/10/09 PHP
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
简介JavaScript中Math.cos()余弦方法的使用
2015/06/15 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
canvas的神奇用法
2017/02/03 Javascript
jQuery操作css样式
2017/05/15 jQuery
javascript简单写的判断电话号码实例
2017/05/24 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
python多进程并行代码实例
2019/09/30 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
结合CSS3的新特性来总结垂直居中的实现方法
2016/05/30 HTML / CSS
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
大学生优秀的自我评价分享
2013/10/22 职场文书
化工机械应届生求职信
2013/11/04 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
大学军训口号大全
2015/12/24 职场文书
Python爬取某拍短视频
2021/06/11 Python