本文来自lukin的博客。。。
Lukin,lazyCMS的作者,如果你用过,或许会知道。。。
以下是原文
我是从asp转向php的,asp里面提供了下面的方法
代码1:
on error remuse next
'这里的代码出现的错误可以被屏蔽掉
on error goto 0
----------------------------------------------------华丽的分割线-------------------------------------------------
转向php之后,查了一些资料貌似php没有提供类似这样的语法
直接使用error_reporting(0);关闭所有错误是很不明智的。所以,考虑使用@来抑制错误的发生,但是往往不如意。
我使用的set_error_handler('myerror')监听了一个函数,直接写@抑制错误的发生那是办不到的,照样会跳到myerror函数里面进行处理,后来看WordPress的源码,发现她屏蔽错误的方法:
代码2:
$error_reporting = error_reporting(0);
// 这里发生的错误将被屏蔽
error_reporting($error_reporting);
应用到我系统里面,发现此方法也不好用,照样会进入myerror函数进行错误处理。
继续狂翻php手册,仔细查看set_error_handler这个函数的说明,然后查看评论(一般看手册上的评论还是很有收获的),评论上的一段代码引起了我的注意:
代码3:
// if error has been supressed with an @
if (error_reporting() == 0) {
return;
}
细想了一下,把这段代码加入到myerror里面,果然ok了!原来使用@的时候,error_reporting()会返回0
这样可以利用@屏蔽某个函数里面发生的错误了,也可以使用【代码2】的方法来进行分段屏蔽错误了。
--EOF--
我一般是用Set_error_handler的。。还有我记得Error_reporting是可以返回当前设置的等级的。先取回当前的等级,然后设置为0,解决完后再设置回去。其实也是就第二种了。。不过我觉得lukin应该是用这种的,即:
<?php
$old = error_reporting();
error_reporting(0);
//code....
error_reporting($old);//恢复。。

评论 (2)
冬天,怎么物理降温啊。本来就很冷的,因为正在感冒吃药。所以怀疑是药物过敏,才去医院检查的。
小孩在两岁之前是要出诊的,这叫急诊,一般2-3天时间。出完疹子就好了,不用看医生,更不用打吊水。只要孩子精神好,就可以进行物理降温,我们家孩子出疹的时候,我们没带他去医院。