HttpTimeoutException和TimeoutException之间的差异



有人能帮助理解HttpTimeoutException和TimeoutException之间的区别吗。

根据HttpTimeoutException 的定义

在指定的时间段内未收到响应时抛出。

和超时异常

阻塞操作超时时引发异常。指定了超时的阻塞操作需要一种方法来指示超时已经发生。对于许多这样的操作,可以返回指示超时的值;当这不可能或不可取时,则应声明并抛出TimeoutException。

好吧,Exception s是Java中发出问题信号的一种方式。您可以随时使用any来显示问题,但使用Exceptions是一种很好的方式,有助于理解问题。

你问的两个Exception都像所有Exception一样扩展Exception。为什么不总是抛出Exception呢?因为对于贫穷的开发人员来说,接收NumberFormatExceptionNullPointerException比接收基本的Exception更有意义。

好的,让我们来看看TimeoutExceptionHttpTimeoutException

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

我们可以看到的第一个区别是,HttpTimeoutException扩展了IOException,而TimeoutException扩展了基本的Exception。它告诉我们什么?

当http客户端或服务器响应时间过长时,我们应该使用HttpTimeOutException,因为这是I(nput(O(utput(问题。

当问题是计算耗时过长时,应该使用TimeoutException,但在http连接的情况下则不应使用。就我个人而言,即使它是键盘,我也不会用它来处理占用太长时间的I(nput(O(utput(。我将声明我自己的Exception,它将扩展IOException并称之为IOTimeoutException,并使用它使其对未来的读者更清晰。

希望它能有所帮助。欢迎在评论中进一步提问-我会在需要时更新我的答案。

相关内容

  • 没有找到相关文章

最新更新