2016-09-28 18 views
2

HttpTimeoutExceptionとTimeoutExceptionの違いを理解してもらえますか?応答が指定された時間内に受信されない場合にスローされHttpTimeoutExceptionHttpTimeoutExceptionとTimeoutExceptionの相違点

の定義に従って

そしてTimeoutException

ブロック操作がタイムアウトにスローされる例外です。タイムアウトが指定されているブロッキング操作では、タイムアウトが発生したことを示す手段が必要です。多くのこのような操作では、タイムアウトを示す値を返すことができます。それが可能でないか望ましい場合、TimeoutExceptionを宣言してスローする必要があります。

+0

HttpTimeoutExceptionは、一般的なTimeoutExceptionのサブクラスです。より一般的なTimeoutExceptionのハンドラーでHttpTimeoutExceptionを捕捉することができます。ただし、コードの明快さのためにTimeoutExceptionハンドラを使用するよりも、より具体的なhttp例外を使用することをお勧めします – K3v1n

答えて

1

まあ、Exceptionは、Javaの問題を通知する方法です。任意のanyを使用して問題を表示することはできますが、問題を理解するのに役立つ例外を使用するとよい方法です。

ExceptionのいずれもExceptionとしてください。Exceptionがあります。常にExceptionを投げるのはなぜですか? NumberFormatExceptionまたはNullPointerExceptionを受け取ることは、貧しい開発者にとって意味があるため、基本的なExceptionです。

だから、TimeoutExceptionHttpTimeoutExceptionを見てみましょう。 HttpTimeoutExceptionIOExceptionを拡張し、TimeoutExceptionは基本Exceptionを拡張することを、私たちが見ることができる

java.lang.Object 
java.lang.Throwable 
    java.lang.Exception 
    java.util.concurrent.TimeoutException 

java.lang.Object 
java.lang.Throwable 
    java.lang.Exception 
    java.io.IOException 
    java.net.http.HttpTimeoutException 

まず違いは、事実です。それは私たちに何を教えてくれるの?

httpクライアントまたはサーバーがI(nput)O(utput)の問題で応答時間が長すぎる場合は、HttpTimeOutExceptionを使用する必要があります。

問題が計算に長時間かかる場合は、http接続の場合ではなく、TimeoutExceptionを使用する必要があります。個人的には、たとえキーボードであってもI(nput)O(utput)が長すぎるために使用しません。私は自分のExceptionを宣言してIOExceptionに広げ、それをIOTimeoutExceptionと呼び、それを将来の読者のために明確にするために使用します。

うまくいけば助けてください。コメントでさらにお気軽にお問い合わせください - 私は必要に応じて私の答えを更新します。

関連する問題