set_exception_handler函数在ThinkPHP中的用法

2015-01-24信息快讯网

这篇文章主要介绍了set_exception_handler函数在ThinkPHP中的用法,分析了官方给出了set_exception_handler函数用法说明及示例,并讲述了在ThinkPHP中的应用实例,需要的朋友可以参考下

本文实例讲述了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导入excel文件到mysql数据库的方法
PHP中使用SimpleXML检查XML文件结构实例
PHP中$this和$that指针使用实例
php模仿asp Application对象在线人数统计实现方法
php读取mssql的ntext字段返回值为空的解决方法
php生成excel列名超过26列大于Z时的解决方法
Yii中使用PHPExcel导出Excel的方法
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Yii框架获取当前controlle和action对应id的方法
php常用hash加密函数
php使用function_exists判断函数可用的方法
php5.3提示Function ereg() is deprecated Error问题解决方法
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
让ThinkPHP支持大小写url地址访问的方法
php使用fopen创建utf8编码文件的方法
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
CI框架学习笔记(二) -入口文件index.php
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
php中__destruct与register_shutdown_function执行的先后顺序问题
PHP依赖倒置(Dependency Injection)代码实例
PHP中魔术变量__METHOD__与__FUNCTION__的区别
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
安装ImageMagick出现error while loading shared libraries的解决方法
php实现的click captcha点击验证码类实例
php实现的Captcha验证码类实例
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
php中error与exception的区别及应用
ThinkPHP行为扩展Behavior应用实例详解
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
©2014-2024 dbsqp.com