0
写入OutputStream
时,如果远程机器关闭或断开连接,它将抛出IOException
异常。现在,我想调用一个特定的方法,只有(并且只有)管道损坏。问题是IOException
没有code
或errno
属性来检查此错误。我能够实现这一目标的唯一方法是通过仅在抛出IOException时检查断开的管道
try {
stream.write(message.getBytes("UTF8"));
stream.flush();
} catch (IOException e) {
if (e.getMessage().equals("sendto failed: EPIPE (Broken pipe)")) {
// perform a specific action
} else {
e.printStackTrace();
}
}
很明显,这不是实现这样的事情的完美方式。任何有效解决方案的建议?