Java 有没有办法区分连接超时和套接字超时?
Apache HttpClient框架允许您指定连接超时和套接字超时,如下所示:Java 有没有办法区分连接超时和套接字超时?,java,sockets,connection,timeout,apache-httpclient-4.x,Java,Sockets,Connection,Timeout,Apache Httpclient 4.x,Apache HttpClient框架允许您指定连接超时和套接字超时,如下所示: final HttpParams httpParams = new BasicHttpParams(); if (connectionTimeout > 0) { HttpConnectionParams.setConnectionTimeout(httpParams, connectionTimeout); } if (socketTimeout > 0) { HttpConnecti
final HttpParams httpParams = new BasicHttpParams();
if (connectionTimeout > 0) {
HttpConnectionParams.setConnectionTimeout(httpParams, connectionTimeout);
}
if (socketTimeout > 0) {
HttpConnectionParams.setSoTimeout(httpParams, socketTimeout);
}
HttpClient client = new DefaultHttpClient(httpParams);
我想微调我的连接超时。很好地解释了设置之间的差异,但对调试引发的异常没有帮助
我的问题是,每种类型的超时会引发什么异常?我有一个朋友;这是连接超时还是套接字超时?我怀疑是后者,尤其是因为信息上写着“读取超时”。连接超时将引发什么异常?为什么超时设置和抛出的异常之间的关系没有被捕捉到
SocketTimeoutException
的直接父类为和;前者对于子类只有SocketTimeoutException
,但是IOException
有许多子类。是否有另一个参考文献涵盖了从HttpClientexecute
方法可以预期收到的所有类型的异常?它只声明它可以抛出一个IOException
,这真的非常广泛。我还没有讨论Java API中类之间的关系,但我认为您需要的是