如何处理.close()中抛出的多个异常?

时间:2014-03-22 10:05:03

标签: java exception-handling java-7

这是Java 7.我有一个类,它在一个实现Closeable的类中维护一个FTP客户端列表(我称之为代理)。

On .close()我将它们断开连接,但当然每个都可以抛出异常。现在代码如下:

@Override
public void close()
    throws IOException
{
    IOException toThrow = null;

    final List<FtpAgent> list = new ArrayList<>();
    agents.drainTo(list); // <-- agents is a BlockingQueue
    for (final FtpAgent agent: list)
        try {
            agent.disconnect();
        } catch (IOException e) {
            if (toThrow == null)
                toThrow = e;
        }

    if (toThrow != null)
        throw toThrow;
}

除了缺少每个例外的记录外,这是解决这个问题的正确方法吗?

0 个答案:

没有答案