有人可以帮助理解HttpTimeoutException和TimeoutException之间的区别。
的定义在指定时间段内未收到回复时抛出。
阻塞操作超时时抛出异常。阻止指定超时的操作需要一种方法来指示超时已发生。对于许多这样的操作,可以返回指示超时的值;当那是不可能或不可取的时候,应该声明并抛出TimeoutException。
答案 0 :(得分:2)
嗯,Exception
是一种表示Java问题的方法。你可以随时使用任何一个来显示问题,但是使用有助于理解问题的异常是一种很好的方式。
您提出的Exception
两个Exception
都延伸Exception
,就像所有Exception
一样。为什么不总是抛出NumberFormatException
?因为对于可怜的开发者而言,接收NullPointerException
或Exception
对基本TimeoutException
更有意义。
好的,让我们来看看HttpTimeoutException
和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
延伸基本HttpTimeOutException
。它告诉我们什么?
我们应该使用TimeoutException
当问题是http客户端或服务器响应时间过长,因为它是I(输入)O(utput)问题。
当问题是计算时间过长时,应该使用Exception
,但是在http连接的情况下不应该使用IOException
。就个人而言,我不会用它来为我(输入)O(utput)花费太长时间,即使它是键盘。我会声明我自己的IOTimeoutException
,它会扩展@grouped_options = Category.all.map {
|category| [category.name,
category.products.map {
|product| [product.name,product.id]}]}
并将其称为<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/ecmascript" src="jquery/js/jquery-1.7.2.min.js"></script>
<script type="text/ecmascript" src="jquery/js/i18n/grid.locale-en.js"></script>
<script type="text/ecmascript" src="jquery/js/jquery.jqGrid.min.js"></script>
<link rel="stylesheet" type="text/css" media="screen" href="jquery/css/ui.jqgrid.css"/>
<link rel="stylesheet" type="text/css" media="screen" href="jquery/css/jquery-ui.css" />
<meta http-equiv="content-type" content="text/html" charset="UTF-8">
<title>IPAM</title>
</head>
<body>
<table id="jqGrid"></table>
<div id="jqGridPager"></div>
<script type="text/javascript">
$(document).ready(function () {
$("#jqGrid").jqGrid({
url:'http://localhost:1323/api/v1/leases',
mtype: "GET",
datatype: 'jsonString',
jsonReader:{
repeatitems: false,
id: "address",
},
colModel: [
{label: 'address', index:'address', key: true, width: 100},
{label: 'client_id', name:'client_id', width: 150},
{label: 'expire', name:'expire', width: 150},
{label: 'fqdn_fwd', name:'fqdn_fwd', width: 150},
{label: 'fqdn_rev', name:'fqdn_rev', width: 150},
{label: 'hostname', name:'hostname', width: 150},
{label: 'hwaddr', name:'hwaddr', width: 150},
{label: 'state', name:'state', width: 150},
{label: 'subnet_id', name:'subnet_id', width: 150},
{label: 'valid_lifetime', name:'valid_lifetime', width: 150},
],
page: 1,
scroll: 1,
viewrecords: true,
width: 780,
height: 250,
rowNum: 20,
pager: "#jqGridPager"
});
});
</script>
</body>
</html>
并使用它来使未来的读者更清楚。
希望它有所帮助。请随时在评论中进一步询问 - 我会在需要时更新我的答案。