Android之網絡請求通過協程+okhttp的沒有做網絡異常處理導致程序奔潰問題

1 問題

app里面的網絡請求是通過協程+okhttp來實現的,但是沒有做網絡異常處理(域名無法解析、502錯誤等等一系列),導致程序奔潰
 

 

 

 

 

 

 

 

 

 

 

2 嘗試

因為app基本上做好了,外面有大幾十個地方調用,然后又有不同的作用域,調用的地方太多了,一開始修改在最外出的網絡請求地方直接加上try catch,發現捕獲不到異常

 

 

 

 

 

 

 

 

 

 

3 最終解決辦法

寫一個擴展函數,文件如下

const val TAG = "net error"suspend fun <T>call(job: suspend () -> T): ApiResponse<T> {return try {ApiResponse(job())} catch (e: java.lang.Exception) {ApiResponse(e)}
}suspend fun <T> Call<T>.subscribe(scope: CoroutineScope,customErrorHandle: (code: Int, e: String?) -> Unit = defaultError
): T? {return try {withContext( Dispatchers.IO) {val result = exec

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286474.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286474.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286474.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Windows10系統重裝后必不可少的優化步驟

1. 查看系統的激活狀態 Win+R,打開運行,輸入slmgr.vbs -xpr,回車! 可以看到,該系統沒有永久激活,即將過期,過期后部分功能會不可使用,需要重新激活。 2. 徹底關掉Windows Defender 方法一: 打開“命令提示符(管理員)”,然后輸入: reg add "HKEY_LOCAL_MA…

【iVX 初級工程師培訓教程 10篇文拿證】03 事件及猜數字小游戲

目錄 【iVX 初級工程師培訓教程 10篇文拿證】01 了解 iVX 完成新年賀卡 【iVX 初級工程師培訓教程 10篇文拿證】02 數值綁定及自適應網站制作 【iVX 初級工程師培訓教程 10篇文拿證】03 事件及猜數字小游戲 【iVX 初級工程師培訓教程 10篇文拿證】04 畫布及我和 iVX 合照 【iV…

visual studio系列(vs)啟動調試網站使用ip+端口局域網訪問

vs系列工具創建web應用時會自動創建一些配置文件&#xff0c;本文章講的是如何修改配置文件&#xff0c;使vs在啟動運行調試情況下 使用ip端口形式在局域網訪問。本文章使用的是vs2015&#xff0c;.net 4.5。步驟如下&#xff1a;1.使用vs創建好你的web應用&#xff0c;打開項目…

Android studio之編譯提示Could not find :umeng-asms-v1.2.1:.

1 、問題 Could not determine the dependencies of task :app:compileDebugJavaWithJavac. > Could not resolve all task dependencies for configuration :app:debugCompileClasspath.> Could not find :umeng-asms-v1.2.1:.Required by:project :app> Could not …

1-100之間的奇數

#include "stdio.h" int main() {int i0;for(i1;i<100;i){if(i%21){printf("%d ",i);}}return 0; }轉載于:https://blog.51cto.com/zhangxinbei/1718010

計算機與操作系統基礎小結

計算機基礎概念 1946年二月美國&#xff0c;世界上第一臺電子計算機ENIAC誕生&#xff0c;似乎從這一年開始世界便逐漸變得不一樣了。隨著半個世紀的時間&#xff0c;計算機技術蓬勃發展&#xff0c;推動人類進入信息社會。 計算機操作界面&#xff1a; ①圖形用戶界面 ②命令行…

WPF效果第一百八十九篇之又玩Expander+ListBox

上一篇文章已經提前預告了今天要分享的效果,今天接著上一篇的效果接著去實現,還是先來看最終實現的效果:1、關于簡單的布局設計:總結&#xff1a;①③是Expander②④⑤⑥是ListBox2、把上一篇的②這一塊用ListBox替換:<Expander Grid.Column"1" ExpandDirection&q…

作為一個甘肅天水人,我對罐罐茶有一種特殊的情懷

作為一個出生在罐罐茶世家的80后鄉土人&#xff0c;經歷了罐罐茶的發展演變歷史&#xff0c;與罐罐茶結下了不解情緣&#xff0c;下面我就跟大家分享一下劉一哥與罐罐茶的故事吧。 久違的罐罐茶.mp4美麗邂逅 我最早接觸罐罐茶應該是90年代&#xff0c;那個年代家里條件很不好&…

【iVX 初級工程師培訓教程 10篇文拿證】02 數值綁定及自適應網站制作

目錄 【iVX 初級工程師培訓教程 10篇文拿證】01 了解 iVX 完成新年賀卡 【iVX 初級工程師培訓教程 10篇文拿證】02 數值綁定及自適應網站制作 【iVX 初級工程師培訓教程 10篇文拿證】03 事件及猜數字小游戲 【iVX 初級工程師培訓教程 10篇文拿證】04 畫布及我和 iVX 合照 【iV…

將WebApiTestClient添加到ASP.NET Web API幫助頁面

ASP.NET Web API幫助頁面是一種有用的擴展&#xff0c;可為您的Web API自動生成基于Web的文檔。它使調試變得更容易&#xff0c;因為您可以將幫助頁面中的信息復制/粘貼到Fiddler等工具中&#xff0c;以調用Web API服務并檢查響應。現在&#xff0c;如果您可以直接在幫助頁面上…

【LeetCode】3. Longest Substring Without Repeating Characters

題目&#xff1a; Given a string, find the length of the longest substring without repeating characters. Examples: Given "abcabcbb", the answer is "abc", which the length is 3. Given "bbbbb", the answer is "b", with t…

Android之判斷時間戳是不是今天

1 需求 判斷時間戳是不是今天 2、工具代碼 /*** 獲取每日0點時間* @return*/fun getTodayTime(timeStamp: Long): Long {val cal = Calendar.getInstance()cal.timeInMillis = timeStampcal.set(Calendar.HOUR_OF_DAY, 0)cal.set(Calendar.SECOND, 0)cal.set(Calendar.MINUTE,…

ArcGIS實驗教程——實驗二十五:大型商場選址經典案例

ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗數據) 一、實驗分析 合理的商場位置有利于商家營業,方便人們購物。商場選址問題需要考慮很多因素,如地理位置、居民點分布、停車場分布、交通情況等。綜合把握這些影響因素對商場的選址顯得尤為重要。 …

全球域名商解析新增保有量15強:愛名網落榜

IDC評述網&#xff08;idcps.com&#xff09;11月30日報道&#xff1a;根據DailyChanges公布的最新數據顯示&#xff0c;在2015年11月26日&#xff0c;全球域名解析新增保有量15強排行榜上&#xff0c;共有5家中國域名商。其中&#xff0c;易名中國連續奪冠&#xff0c;新增保有…

大話領域驅動設計——應用層

?概述應用層是基于領域的應?程序用例的實現&#xff0c;應?程序?例可以看作是?戶界?上的?戶交互。這一篇&#xff0c;我將詳細講解應用層組件及用法。總覽應用層包含以下組件&#xff1a;數據傳輸對象&#xff08;DTO)&#xff1a;數據傳輸對象是一個簡單的對象&#xf…

IE8采用IE7模式

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> X-UA-Compatible是針對ie8新加的一個設置&#xff0c;對于ie8之外的瀏覽器是不識別的&#xff0c;這個區別與 content"IE7"在無論頁面是否包含<!DOCTYPE>指令&#…

【iVX 初級工程師培訓教程 10篇文拿證】01 了解 iVX 完成新年賀卡

目錄 【iVX 初級工程師培訓教程 10篇文拿證】01 了解 iVX 完成新年賀卡 【iVX 初級工程師培訓教程 10篇文拿證】02 數值綁定及自適應網站制作 【iVX 初級工程師培訓教程 10篇文拿證】03 事件及猜數字小游戲 【iVX 初級工程師培訓教程 10篇文拿證】04 畫布及我和 iVX 合照 【iV…

ArcGIS實驗教程——實驗二十六:ArcScene實現二維數據的三維顯示

ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗數據)》 DEM三維顯示: 地形數據+影像數據: 以上效果均是在ArcScene中實現的。 ArcScene允許用戶制作具有透明效果的場景,在場景中能對數據進行瀏覽和交互。ArcAcene支持復雜的3D符號系統及紋理制圖,支…

用Swashbuckle(swagger-ui)顯示API幫助并進行調試

安裝Swashbuckle&#xff1a; 打開NuGet控制臺輸入&#xff1a; Install-Package Swashbuckle 進行安裝。查看幫助 在瀏覽器輸入 http://調試項目地址/swagger/ui/index 可以看到幫助的效果API調試 點開調試的條目&#xff0c;填寫相關參數&#xff0c;“Try it out!”

Android之Fatal Exception: org.greenrobot.greendao.DaoException: Could not init DAOConfig

1 問題 release apk運行奔潰提示錯誤如下 Fatal Exception: org.greenrobot.greendao.DaoException: Could not init DAOConfigat org.greenrobot.greendao.h.a.<init>(DaoConfig.java:28)at org.greenrobot.greendao.b.a(AbstractDaoMaster.java:1) 2 解決辦法 progu…