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
实用PHP会员权限控制实现原理分析
May 29 PHP
php array的学习笔记
May 16 PHP
用来解析.htpasswd文件的PHP类
Sep 05 PHP
解决file_get_contents无法请求https连接的方法
Dec 17 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
php实现改变图片直接打开为下载的方法
Apr 14 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
php语言的7种基本的排序方法
Dec 28 PHP
PHP中的正则表达式实例详解
Apr 25 PHP
tp5框架无刷新分页实现方法分析
Sep 26 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扩展函数
2006/10/09 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
php中__toString()方法用法示例
2016/12/07 PHP
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
Python中交换两个元素的实现方法
2018/06/29 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
Python制作词云图代码实例
2019/09/09 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
酒店管理自荐信
2013/10/23 职场文书
英语简历自我评价
2014/01/26 职场文书
九年级英语教学反思
2014/01/31 职场文书
母婴店促销方案
2014/03/05 职场文书
安全协议书
2014/04/23 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
cypress测试本地web应用
2022/06/01 Javascript