2017-01-11 9 views
1

Anko doAsync呼び出しの中でRetrofitを使用して非同期呼び出しを呼び出しています。問題は、​​を正常にスローするIOExceptionをキャッチする方法がわからないことです。基本的には実行呼び出しが呼び出されません。私がif (resultBody is T)行にコメントし、trycatchの中に電話を入れると、それは魅力的なように機能します。なぜ誰も知っていますか? doAsyncドキュメントからAnko非同期呼び出し(Kotlin)で例外をキャッチ中エラー

doAsync { 

    val response = call.execute() 

    uiThread { 

     if (response.isSuccessful) { 

      val resultBody = response.body() 

      if (resultBody is T) 
       callback.onSuccess(resultBody) 
     } 
    } 
} 

答えて

0

  • @param exceptionHandlerのオプションの例外ハンドラ。 * が定義されている場合、[task]内にスローされた例外はすべて例外に渡されます。 でなければ、例外は無視されます。

あなたがそれらを管理するためにexceptionHandlerを渡すことができたり、それが彼らのcrashLoggerで例外を処理するようになっています

private val crashLogger = { throwable : Throwable -> throwable.printStackTrace() } 

//... 

fun <T> T.doAsync(//... 
    exceptionHandler: ((Throwable) -> Unit)? = crashLogger, 
    //...) 

あなたが詳細についてはAnko doAsync implementationを確認することができます。

関連する問題