我正在构建一个简单的android应用程序,使用架构。为此,我使用Retrofit2作为网络请求,使用Hilt进行依赖注入。这个应用程序工作良好,而互联网是可用的,但当我关闭互联网,它崩溃的应用程序.,那么如何处理网络错误,而应用程序是在离线模式?
这是向API请求数据的代码:
@Singleton
@Provides
fun provideRecipeService() : RecipeService {
return Retrofit.Builder()
.baseUrl("https://food2fork.ca/api/recipe/")
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(RecipeService::class.java)
}发布于 2021-11-13 16:57:00
它与您的依赖项注入无关,我认为您的代码中有一个未捕获的异常,所以当您的网络调用失败(抛出异常)时,您没有处理异常,转到网络调用,用try-catch覆盖整个网络调用并测试它,如果它正常,将异常映射到错误模型,并以您想要处理错误的方式处理它,希望它有所帮助。
发布于 2021-11-13 17:11:03
我们需要实际的异常,你看到的一个确切的解决方案,但一般来说,一些网络状态可以抛出不同的异常。如果将网络调用放置在try catch块中,则安全性更高。
正如keivan shamlu所说,这与写作无关。
https://stackoverflow.com/questions/69956199
复制相似问题