php 警告 捕获,php – 我可以尝试/捕获警告吗?

设置和恢复错误处理程序

一种可能性是在调用之前设置自己的错误处理程序,并稍后使用restore_error_handler()恢复先前的错误处理程序。

set_error_handler(function() { /* ignore errors */ });

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, array $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()访问当前设置。

抑制警告

另一种可能性是用@运算符抑制调用,然后检查dns_get_record()的返回值。但我建议反对这一点,因为错误/警告被触发处理,而不是被抑制。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值