gpt4 book ai didi

php - 在 PHP5 中,我应该使用 Exceptions 还是 trigger_error/set_error_handler?

转载 作者:行者123 更新时间:2023-12-03 08:01:34 27 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

8年前关闭。




Improve this question




做任何一种方式的优点/缺点是什么。有一种正确的方式(tm)吗?

最佳答案

如果您想在整个应用程序中使用异常而不是错误,可以使用 ErrorException 来实现。和一个自定义错误处理程序(有关示例错误处理程序,请参阅 ErrorException 页面)。这种方法唯一的缺点是非 fatal error 仍然会抛出异常,除非被捕获,否则这些异常总是致命的。基本上,即使是 E_NOTICE如果您的 error_reporting 将停止您的整个应用程序设置不会抑制它们。

在我看来,使用 ErrorException 有几个好处:

  • 自定义异常处理程序可以让您使用 set_exception_handler 显示漂亮的消息,甚至是错误消息。 .
  • 它不会以任何方式破坏现有代码... trigger_error和其他错误功能仍将正常工作。
  • 忽略触发 E_NOTICE 的愚蠢编码错误真的很难。 s 和 E_WARNING s。
  • 您可以使用 try/catch包装可能产生 PHP 错误(不仅仅是异常)的代码,这是避免使用 @ 的好方法错误抑制黑客:
    try {
    $foo = $_GET['foo'];
    } catch (ErrorException $e) {
    $foo = NULL;
    }
  • 您可以将整个脚本包装在一个 try 中。/catch如果您想在发生任何 Uncaught Error 时向用户显示友好消息,请阻止。 (请谨慎操作,因为只记录 Uncaught Error 和异常。)
  • 关于php - 在 PHP5 中,我应该使用 Exceptions 还是 trigger_error/set_error_handler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10450873/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com