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 会话(session 时间设定)使用入门代码
Jun 05 PHP
php下批量挂马和批量清马代码
Feb 27 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
一个漂亮的php验证码类(分享)
Aug 06 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
Jul 05 PHP
一款简单实用的php操作mysql数据库类
Dec 08 PHP
php使用curl简单抓取远程url的方法
Mar 13 PHP
为你总结一些php系统类函数
Oct 21 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
Dec 21 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
laravel框架邮箱认证实现方法详解
Nov 22 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
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
php5.3 goto函数介绍和示例
2014/03/21 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
2013/06/28 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
jQuery EasyUI 入门必看
2016/06/03 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
python 判断自定义对象类型
2009/03/21 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
Python目录和文件处理总结详解
2019/09/02 Python
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
人力资源部经理的岗位职责
2014/03/04 职场文书
班班通校本培训方案
2014/03/12 职场文书
房屋出售协议书
2014/04/10 职场文书
出国留学计划书
2014/04/27 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
综治维稳工作汇报
2014/10/27 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
Ruby处理CSV数据方法详解
2022/04/18 Ruby
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python