gpt4 book ai didi

PHP:如何优雅地管理错误?

转载 作者:可可西里 更新时间:2023-10-31 23:57:52 25 4
gpt4 key购买 nike

当无法访问 Web 上的某些内容(api、数据库)时,我将如何停止执行脚本的其余部分并将错误记录在日志文件中?好吧,这样访问者就不会看到确切的原因,而是会看到我的自定义消息(比如,“刚刚发生了一件坏事”)。我需要采取什么步骤来安排事情?

最佳答案

我通常喜欢使用 Exceptions ,在那种情况下:它允许我将所有错误处理代码放在一个地方。


例如,我会使用类似这样的东西:

try {
// Some code

// Some code that throws an exception

// Some other code -- will not be executed when there's been an Exception

} catch (Exception $e) {
// Log the technical error to file / database

// Display a nice error message
}

有了它,所有错误处理代码都在 catch block 中——而不是分散在我的整个应用程序中。


但请注意,许多 PHP 函数不会抛出异常,只会引发警告或错误...

对于那些,你可以使用 set_error_handler定义您自己的错误处理程序——它可能会抛出异常 ;-)
例如,参见manual page of ErrorException上的例子.

尽管这对于许多错误/警告都可以正常工作,但您应该注意它不适用于Parse ErrorFatal Error :

  • 第一种是在实际执行 PHP 代码之前实际引发
  • 而第二种是……好吧……致命。


而且我绝不会在我的代码中间放置任何 dieexit:在我看来,这是处理错误的最糟糕的可能方式之一。

我也会这样配置我的服务器/应用程序:

关于PHP:如何优雅地管理错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2362924/

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