gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:08:10 26 4
gpt4 key购买 nike

这两种方法的优缺点是什么。有一种正确的方法(tm)吗?

最佳答案

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

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

  1. 使用set_exception_handler,自定义异常处理程序可以让您显示漂亮的消息,即使是错误消息。 .
  2. 它不会以任何方式破坏现有代码... trigger_error和其他错误功能仍将正常工作。
  3. 很难忽略会触发 E_NOTICEE_WARNING 的愚蠢编码错误。
  4. 您可以使用 try/catch 来包装可能产生 PHP 错误(不仅仅是异常)的代码,这是避免使用@ 错误抑制技巧:

    try {
    $foo = $_GET['foo'];
    } catch (ErrorException $e) {
    $foo = NULL;
    }
  5. 如果您想在发生任何 Uncaught Error 时向用户显示友好消息,则可以将整个脚本包装在一个 try/catch block 中。 (小心执行此操作,因为只会记录 Uncaught Error 和异常。)

关于php - 在 PHP5 中,我应该使用 Exceptions 还是 trigger_error/set_error_handler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60607/

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