gpt4 book ai didi

ios - 您应该如何处理生产环境中的错误?

转载 作者:行者123 更新时间:2023-11-28 10:46:22 25 4
gpt4 key购买 nike

我一直在学习一些教程并构建了一个我想发布的应用程序,但我不确定如何处理错误。

教程会教您诸如 do-catch block 之类的东西,但每当他们处理抛出错误的情况时,他们只是将错误记录到控制台,这在生产环境中显然没有帮助。

此外,一些 do-catch block 的例子似乎没有什么用处。例如,我使用 Realm 数据库作为我应用程序的核心部分,我被告知初始化它的方式就像在 AppDelegate 中一样:

do {
_ = try Realm()
} catch {
// TODO: - Handle Exception
}

但在这种情况下,由于 realm 是我应用程序的核心部分,我什至不介意它是否使应用程序崩溃,因为如果它没有正确初始化,它无论如何都会在以后崩溃。

在某些明显的情况下,我应该只向用户显示错误(例如,如果您尝试连接到 API 但没有 wifi),或者可以提供默认值,但我不这样做知道在这里做什么。

最佳答案

没有单一的好方法来处理错误,因为应该如何处理错误完全取决于具体情况。

但是,一般来说,有一些关于错误处理的指南:

  • 在可抛出的函数上使用 do-catch block ,除非你有一个非常这样做的充分理由
  • 不惜一切代价避免运行时错误,不要抛出 fatal error 。即使您的应用程序遇到无法正确处理的错误(您的应用程序运行绝对需要可抛出函数的结果),也不要让您的应用程序因运行时错误而崩溃,而是让用户知道有什么错误的。崩溃的应用程序会向您的用户发送非常糟糕的消息,而在遇到错误后优雅地失败似乎并不那么糟糕。
  • 在 catch block 中,尝试解决错误如果错误是,让用户知道有错误可恢复的(例如,您可以使用默认值而不是你期望从 throwable 函数中得到的值)
  • 如果错误不能处理,让用户知道有一个错误(比如他们发出网络请求时没有互联网连接或网络请求因任何其他原因失败)并尝试给他们一个替代方法(即稍后在有互联网时尝试连接)
  • 如果您绝对确定该函数实际上不会抛出错误(例如 Realm.init( ) 只能在应用程序生命周期中第一次调用它时抛出错误,因此在第一次实例化 Realm 之后,您可以安全地执行 try!Realm()) 或者如果错误代表程序员错误(例如文件不在正确的位置,这是应用程序需要的),但请确保您在开发阶段实际纠正了此类错误

关于ios - 您应该如何处理生产环境中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48388375/

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