当 socket.close() 在 Java 中抛出时,我能做些什么?
2022-09-04 08:36:00
一周前开始学习Java,并决定学习正确的例外工作方式。Java真的让我发疯,因为指定该方法可以作为其签名的一部分可以引发的异常。
我目前正在尝试为客户端 - 服务器应用程序实现多线程服务器。我对可以抛出IOException的事实感到非常惊讶。问题是,如果发生这种情况,我该怎么办?socket.close()
...
final Socket socket = .... // at this point I know that I have a good socket
try {
..... // communicating with someone on that side....
} catch(IOException e) {
// communication failed
// this fact is useful, I can log it
// and will just hang up
} finally {
try {
socket.close(); // bye-bye
} catch(IOException e) {
// anything but logging I can do here?
}
}
...
这段代码在单独的线程中执行,所以我只需要捕获所有异常。问题主要是心理上的 - 我知道,我可以把块留空,但我试图避免这个技巧。catch
有什么想法吗?