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作的文本留言本的例子(六)
Oct 09 PHP
PHP实现用户认证及管理完全源码
Mar 11 PHP
php入门小知识
Mar 24 PHP
php中变量及部分适用方法
Mar 27 PHP
hessian 在PHP中的使用介绍
Dec 13 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
Jun 06 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
Jun 28 PHP
PHP中SESSION的注销与清除
Apr 16 PHP
WordPress中"无法将上传的文件移动至"错误的解决方法
Jul 01 PHP
php需登录的文件上传管理系统
Mar 21 PHP
PHP常见漏洞攻击分析
Feb 21 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 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 分页类(模仿google)-面试题目解答
2009/09/13 PHP
php多文件上传实现代码
2014/02/20 PHP
php英文单词统计器
2016/06/23 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
javascript globalStorage类代码
2009/06/04 Javascript
Javascript基础教程之比较操作符
2015/01/18 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
JS实现浏览上传文件的代码
2017/08/23 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
Python多线程学习资料
2012/12/19 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
布局和排版教程 纯css3实现图片三角形排列
2014/10/17 HTML / CSS
任课老师推荐信范文
2013/11/24 职场文书
初中英语课后反思
2014/04/25 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书