php 屏蔽fatal error,PHP截获fatal error示例

我们在做项目时,偶尔会因为不谨慎而出现fatal error。如果display_errors设置成off,那用户将会看到的是一个空白的页面。若设置成了on,那fatal error的信息将会呈现出来(当然正常的人都不会这样干)。

那我们有什么方法可以提前截获到fatal error,并用我们自己自定义的友好形式反馈给用户呢。PHP中有一个叫做 register_shutdown_function 的函数,可以让我们设置一个当执行关闭时可以被调用的另一个函数.也就是说当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,这个函数将会被调用。

下面请看一个例子:

$flag = false;

function deal_error(){

global $flag;

if (!$flag){

die("粗问题啦,请稍后再试");

}

return false;

}

register_shutdown_function("deal_error");

//将因为致命错误而失败

//$obj = new NotExistClass(); //引入未定义的类

require('./test.php');

$flag = true;

?>

我们在程序入口处,设置flag为false,最后设置成true,表明程序正常执行。若flag最后不为true,说明在中间某个地方死掉了,此时就会调用register_shutdown_function,输出我们自定义的错误结果。

如上面的类未定义、引入不存在的文件(必须使用require或require_once)等会导致fatal error。当然,要是你程序是缺个标点或者多了个特殊字符啥的,那就没办法了。

延伸阅读:

·PHP使用register_shutdown_function()函数实例

·解决ThinkPHP提示错误Fatal error: Allowed memory size

·解决PHP中Fatal error session_start()错误

·PHP捕获Fatal error错误

·PHP解决:FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()

·PHP的register_shutdown_function函数介绍

·Fatal error: Call to undefined function mb_convert_encoding() 错误替代

·Fatal error:Call to undefined function curl_init() in ...错误

·php的register_shutdown_function函数详解

·Fatal error: Call to undefined function mb_convert_encoding() in错误解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值