栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我可以尝试/捕捉警告吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我可以尝试/捕捉警告吗?

设置和还原错误处理程序

一种可能是在调用之前设置您自己的错误处理程序,并稍后使用还原以前的错误处理程序

restore_error_handler()

set_error_handler(function() {  });dns_get_record();restore_error_handler();

您可以基于这个想法并编写可重复使用的错误处理程序,为您记录错误。

set_error_handler([$logger, 'onSilencedError']);dns_get_record();restore_error_handler();

把错误变成异常

您可以使用

set_error_handler()
ErrorException
类将所有php错误转化为异常。

set_error_handler(function($errno, $errstr, $errfile, $errline, $errcontext) {    // error was suppressed with the @-operator    if (0 === error_reporting()) {        return false;    }    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);});try {    dns_get_record();} catch (ErrorException $e) {    // ...}

使用自己的错误处理程序时要注意的重要一点是,它将绕过

error_reporting
设置并将所有错误(通知,警告等)传递给错误处理程序。您可以设置第二个参数
set_error_handler()
来定义要接收的错误类型,或者使用
...= error_reporting()
错误处理程序内部访问当前设置。

禁止警告

另一种可能性是使用@运算符禁止调用,然后检查after的返回值

dns_get_record()
但是我建议不要这样做,
因为错误/警告会被触发而不是被抑制。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/597028.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号