更具体地说,让我们考虑ServerSocket。它一旦构造对象就开始侦听传入的连接。然后,您应该使用accept()接受连接(如果有人尝试连接)。
如果之前使用setSoTimeout()配置了服务器套接字,则有可能accept()会引发SocketTimeoutException,因为在指定的时间段内没有人尝试连接。那很好,服务器套接字仍然可用,因此您只需再次调用accept()。
但是SocketTimeoutException并不是accept()可能引发的唯一异常。所有其他异常都是什么意思?如果在2个catch子句中包装对accept()的调用:对于SocketTimeoutException和IOException,我是否仍然可以在进入IOException子句后安全地使用相关的ServerSocket实例?
我真的很感激Java范围和ServerSocket特定答案。