2017-11-23 3 views
1

への要求のタイムアウトを検出:その要求場合Kotlinにネットワークタイムアウトを持っている場合KotlinはJavaで、たとえば、サーバーにデータを要求するときこんにちは、私は、まだ言語をkotlinする新たなんだサーバー

try{ 
    request_server(); 
} 
catch(IOException e){ 
    //Some toast for network timeout for example 
} 

はどのようにして確認することができます?

+0

が明確でない私はこれを検出することができますどのようにあなたの問題 – s1m0nw1

+0

ものです彼らが例外をチェックしていないときはKotlin –

答えて

2

コトリンには例外がありませんが、コトリンでIOExceptionを捕まえることはできません。

try{ 
    request_server(); 
} 
catch(e: IOException){ 
    //Some toast for network timeout for example 
} 

それはあなたがが言語でのこのような構築物を見ることは非常にまれです:catchでの変数宣言を除き、違いはありません。 Kotlinは高次関数をサポートしているので、そのような関数にエラー処理を抽出して、ビジネスロジックをより明確にし、再利用することもできます。

fun <R> timeoutHandled(block:() -> R): R { 
    try { 
     return block() 
    } catch (e: IOException) { 
     //Some toast for network timeout for example 
    } 
} 

は次のように使用される:POSTの接続などのサーバーへのリクエストがタイムアウトすることができたときにあまりにも長い間、その後のjava にいくつかの例外をスローした場合

val result = timeoutHandled { 
    requestServer() 
} 
関連する問題