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 相关文章推荐
支持oicq头像的留言簿(二)
Oct 09 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
采用thinkphp自带方法生成静态html文件详解
Jun 13 PHP
php的XML文件解释类应用实例
Sep 22 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
Nov 10 PHP
php微信公众平台示例代码分析(二)
Dec 06 PHP
PHP重定向与伪静态区别
Feb 19 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 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
收音机术语解释
2021/03/01 无线电
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
2017/01/10 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
python读取文本中的坐标方法
2018/10/14 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
印度网上药店:1mg
2017/10/13 全球购物
印尼旅游网站:via
2017/11/12 全球购物
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
2014年质检员工作总结
2014/11/18 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python