首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果启用了连接,则重置OkHttp连接

如果启用了连接,则重置OkHttp连接
EN

Stack Overflow用户
提问于 2018-12-18 18:03:48
回答 1查看 874关注 0票数 0

我有一个使用案例,我使用移动互联网(通过运营商),但我超过了我的数据限制。在这种情况下,我的手机看到可用的连接,但我无法打开任何网页。

因此,在这个用例中,我在尝试使用retrofit2和Okhttp进行呼叫时收到了一个SocketException (连接重置)。

在我的代码中,应用程序在"return“行崩溃:

代码语言:javascript
复制
.addInterceptor(Interceptor {
            val newRequest = it.request().newBuilder()
                .header("Accept", "application/json")
                .header("Content-Type", "application/json")
                .header("Authorization", "${App.sessionManager.tokenType} ${App.sessionManager.accessToken}")
                .build()
            return@Interceptor it.proceed(newRequest)
        })

谁能告诉我如何防止app崩溃?提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-19 20:20:55

问题是Kotlin doesn't force you to catch checked exception -就像SocketException一样-因为没有人捕捉到它,系统就会使你的应用程序崩溃。在Java中,你会被迫去捕捉它。

没有办法阻止异常被抛出-这只是意味着发生了一些意想不到的事情-不抛出它是错误的,所以你应该在代码中的某个点catch它。你应该在哪里抓住它?这个问题没有绝对正确的答案,但只要你能用它做一些有用的事情,比如记录和重新抛出它,或者处理它,允许应用程序的流程继续(例如,向用户显示某种类型的错误并允许他们重试该操作),你就应该抓住它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53830601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档