[英]Error catching exception in Anko async call (Kotlin)
我在 Anko doAsync 調用中使用 Retrofit 調用異步調用。 問題是我不知道如何捕獲正確拋出execute()
的 IOException ,基本上沒有調用執行調用。 如果我評論if (resultBody is T)
行,並將調用放入trycatch
它就像一個魅力。 有誰知道為什么?
doAsync {
val response = call.execute()
uiThread {
if (response.isSuccessful) {
val resultBody = response.body()
if (resultBody is T)
callback.onSuccess(resultBody)
}
}
}
來自 doAsync 文檔:
- @param exceptionHandler 可選的異常處理程序。 * 如果定義,任何在 [task] 中拋出的異常都會傳遞給它。 如果沒有,異常將被忽略。
看起來您可以傳遞一個exceptionHandler
來管理它們,或者它將使用它們的crashLogger
處理異常:
private val crashLogger = { throwable : Throwable -> throwable.printStackTrace() }
//...
fun <T> T.doAsync( //...
exceptionHandler: ((Throwable) -> Unit)? = crashLogger,
//... )
您可以查看Anko doAsync 實現以了解詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.