提问人:Tubica 提问时间:9/1/2023 最后编辑:user2342558Tubica 更新时间:9/1/2023 访问量:39
PHP脚本加载完成后如何显示错误?
PHP how to display errors after script finished loading?
问:
我已经使用:
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
在我的代码开头。但是,错误消息直接显示在输出中(很多,因此您无法很好地找到错误)。
脚本加载完成后,如何显示发生的所有错误?
答:
0赞
shingo
9/1/2023
#1
您可以将错误/异常处理程序与析构函数一起使用。处理程序捕获错误,析构函数将在页面的最底部显示捕获的错误。
class ErrorHandler {
private static $instance = null;
private static $errors = [];
public static function Init() {
if(!self::$instance) {
self::$instance = new self;
set_error_handler(function($errno, $errstr, $errfile, $errline){
self::$errors[] = new ErrorException($errstr, 0, $errno, $errfile, $errline);
});
set_exception_handler(function($ex){
self::$errors[] = $ex;
});
}
}
function __destruct(){
foreach(self::$errors as $errstr)
echo $errstr, '<br />';
}
}
ErrorHandler::Init();
评论
0赞
Your Common Sense
9/1/2023
这是一个有趣的解决方案,但对这个特定问题的错误答案。这本质上是一种暂时的情况,必须由基础设施而不是代码来修复。
0赞
shingo
9/1/2023
这是我在开发中常用的方法,有时错误会显示在不显眼的地方。我认为这个要求本身是暂时的,因为你应该期望在上线之前修复所有错误。
0赞
Tubica
9/1/2023
@shingo谢谢你认真对待我!这家伙太无知了..当然,我只需要错误来修复它们,但是我什至无法在不找到它们的情况下修复它们xD
0赞
shingo
9/1/2023
@Tubica不,如果你真的有大量的错误,你最好使用错误日志,因为输出它们仍然需要时间。
评论