SocketTimeoutException:
一、简介:
SocketTimeoutException:指的是服务器响应超时
直接继承自java.io.InterruptedIOException,实现了可序列化接口。
类层次结构:
类声明: public class SocketTimeoutException extends InterruptedIOException
如果在读取或接受套接字时发生超时,则抛出此异常。
二、字段:
从InterruptedIOException继承了一个字段:bytesTransferred 报告 I/O 操作中断之前传输了其中多少字节。
三、构造方法:
①public SocketTimeoutException(String msg) 构造带详细消息的新 SocketTimeoutException。
②public SocketTimeoutException() 构造不带详细信息的新 SocketTimeoutException。
四、方法:
方法都是继承的Throwable或者Object的方法。
ConnectException:
一、简介:
在试图将套接字连接到远程地址和端口时发生错误的情况下,抛出此异常。这些错误通常发生在拒绝远程连接时(例如,没有任何进程在远程地址/端口上进行侦听)。
二、构造方法:
①public ConnectException(String msg) 构造一个新的 ConnectException,使其具有关于连接错误产生原因的指定详细消息。详细消息指的是一个具体描述此错误的 String。
②public ConnectException() 构造不带详细信息的新 ConnectException。
三、方法:方法都是继承的Throwable或者Object的方法。
ConnectException和SocketTimeoutException简要比较:
设置请求超时:
client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 3000);
设置响应超时:
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 3000);
如果在安全级别比较高的项目中,
一次通讯交互中,如果请求失败,说明未能成功请求到服务器,可以允许用户再次提交。
如果是响应失败,就说明用户提交是成功了的,应该防止用户提交。