Android 中更好的错误处理方式
The better way of Error Handling In Android
假设我的应用程序中有这个架构
我的问题是什么时候是处理错误的最佳时间?
- 要不要让网络源和缓存源抛出一个错误,我们在repository层处理所有可能的错误
- 我是否应该在特定框架中处理错误,并且return 一个密封的class 存在的是网络调用错误或成功
取决于用例
- 如果用户需要数据,那么您需要将错误一直发送到您的
UI
以通知用户以确保用户不会只看到空白屏幕或遇到意外 UI.对于这种情况,您可以在 Kotlin 中密封 类。
- 如果您正在获取用户不知道的内容,例如在后台将数据从远程同步到本地缓存,在这种用户不知道/不关心错误的情况下,您的应用应该处理。理想的方法是检查存储库中的句柄错误,如果出现问题,在那里重试或从其他来源获取数据等。
- 第三种情况是在多个级别处理,假设您正在从网络获取数据,它失败了,您可以在存储库级别处理重试逻辑,并且在您用尽重试尝试但仍然失败之后,您需要确认用户,因为他可能期待一些东西出现。
假设我的应用程序中有这个架构
我的问题是什么时候是处理错误的最佳时间?
- 要不要让网络源和缓存源抛出一个错误,我们在repository层处理所有可能的错误
- 我是否应该在特定框架中处理错误,并且return 一个密封的class 存在的是网络调用错误或成功
取决于用例
- 如果用户需要数据,那么您需要将错误一直发送到您的
UI
以通知用户以确保用户不会只看到空白屏幕或遇到意外 UI.对于这种情况,您可以在 Kotlin 中密封 类。 - 如果您正在获取用户不知道的内容,例如在后台将数据从远程同步到本地缓存,在这种用户不知道/不关心错误的情况下,您的应用应该处理。理想的方法是检查存储库中的句柄错误,如果出现问题,在那里重试或从其他来源获取数据等。
- 第三种情况是在多个级别处理,假设您正在从网络获取数据,它失败了,您可以在存储库级别处理重试逻辑,并且在您用尽重试尝试但仍然失败之后,您需要确认用户,因为他可能期待一些东西出现。