gpt4 book ai didi

PHP:错误处理的控制流程是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 20:56:03 24 4
gpt4 key购买 nike

我是 PHP 的新手,所以如果这看起来很愚蠢,我深表歉意。我四处搜索,但找不到任何可以具体解释我正在寻找的东西。

最终我有两个目标。

  1. 在生产中,当发生意外错误时,向用户显示默认的“糟糕”页面。
  2. 当预期错误发生时,在 PHP 不死机的情况下处理它。

我的 PHP 错误处理心智模型非常参差不齐,以至于我无法自信地继续前进,而且我一直无法找到有关该过程的任何好的文档。

举一些人为的例子。

  1. 用户发出请求,连接到数据库失败,我们显示一条错误消息。
  2. 用户发出请求,脚本未正确解析,我们显示一条糟糕消息。
  3. 用户发出请求,我们使用乐观锁定通过更新查询数据库。它失败了,因此我们通知用户该对象已更新。

我认为我的大部分困惑都围绕着哪些错误会导致脚本终止,哪些错误不会(使用默认处理程序),以及当脚本终止时,我们如何优雅地通知用户?

此外,是否有任何标准的 php 函数/对象使用异常?如果我选择以更多的 C 风格处理异常,我不会在任何时候感到惊讶,对吗?这会在 PHP6 中改变吗?如果是这样,我将努力掩盖使用 c 风格和异常之间的区别,但如果不是,我宁愿在整个 PHP5 中始终使用 c 风格。这不是我有兴趣解决的问题,除非我绝对需要。

编辑:我刚刚意识到内容与标题不太相符。我想知道,当发生错误时,PHP 的逻辑流程是什么?这样我就可以更好地理解如何在 PHP 中实现错误处理方面的目标。

最佳答案

大多数 PHP 的内置 tuff 会触发您在默认设置中无法真正处理的错误。

不过,您可以通过设置自定义错误处理程序并抛出异常而不是错误来解决此问题。 (如果可能,PHP 将在内部处理错误之前运行您的处理程序,因此您实际上可以以正常方式捕获异常。)

我在这里的回答中写了一堆代码,您可以在这种情况下使用它们: PHP: exceptions vs errors?

如果 php 无法真正解析您的文件,那您就完蛋了,在大多数无法解析文件的情况下,php 会非常严重地崩溃。尽管您可以尝试编写自己的包含函数 <a href="http://php.net/eval" rel="noreferrer noopener nofollow">eval</a>在包含它之前是一个文件,如果 eval 则跳过失败的。不过,您需要确保基本上可以信任这些文件。

关于PHP:错误处理的控制流程是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2306111/

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