gpt4 book ai didi

php - 我怎样才能捕获 PHP 中的所有错误?

转载 作者:行者123 更新时间:2023-12-03 07:39:49 25 4
gpt4 key购买 nike

我发现了很多关于包罗万象的错误处理实现的尝试,我想我可能会写一个 wiki 风格来提供我想出的完整解决方案。

问题是:

“如何捕获、处理或拦截 PHP 中的所有错误类型?”

现在 - 这可能被某些人视为“重写” - 但我不知道是否有人提出了全面的解决方案。

最佳答案

您需要三种错误处理程序:

  • set_exception_handler , 以捕获任何其他未捕获的异常。

  • set_error_handler捕获“标准”PHP 错误。我喜欢先根据 error_reporting 检查它,看看它是否是一个应该处理或忽略的错误(我通常忽略通知 - 可能不好,但这是我的选择),然后抛出一个 ErrorException,让异常处理程序捕获它以进行输出。

  • register_shutdown_function结合error_get_last .检查 ['type'] 的值以查看它是否是 E_ERRORE_PARSE 或您想要捕获的基本上任何 fatal error 类型。这些通常会绕过 set_error_handler,因此在此处捕获它们可以让您捕获它们。同样,我倾向于只抛出一个 ErrorException,这样所有错误最终都会由同一个异常处理程序处理。

至于你如何实现这些,完全取决于你的代码是如何设置的。我通常执行 ob_end_clean() 来清除任何输出,并提供一个漂亮的错误页面,告诉他们错误已报告。

关于php - 我怎样才能捕获 PHP 中的所有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27238473/

25 4 0
文章推荐: python - discord.py bot 只响应一个命令
文章推荐: javascript - 在 Controller 之间传递id值
文章推荐: javascript - JSX:
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com