使用错误处理技术捕获和处理 PHP 警告
在 PHP 中,警告不会被视为异常,这在需要处理特定情况时带来了挑战来自 dns_get_record 等本机函数的警告会在不成功的 DNS 上触发警告
为了解决这个问题,有两种主要方法:
1.设置和恢复错误处理程序:
一种方法是在执行可能生成警告的代码之前使用 set_error_handler() 临时设置自定义错误处理程序。调用后,可以使用restore_error_handler()恢复原始错误处理程序。这允许忽略或记录特定错误,如下所示:
set_error_handler(function() { /* ignore errors */ }); dns_get_record(); restore_error_handler();
2.将错误转换为异常:
将 set_error_handler() 与 ErrorException 类结合使用,可以将 PHP 错误转换为异常。这允许使用 try-catch 块进行错误处理:
set_error_handler(function($errno, $errstr, $errfile, $errline) { if (0 === error_reporting()) { return false; } throw new ErrorException($errstr, 0, $errno, $errfile, $errline); }); try { dns_get_record(); } catch (ErrorException $e) { // ... }
抑制与错误处理:
虽然使用 @ 运算符抑制警告很诱人,通常不鼓励这样做,因为错误和警告的存在是有原因的,应该被处理而不是被抑制。
以上是如何有效捕获并处理PHP警告?的详细内容。更多信息请关注PHP中文网其他相关文章!