如何知道异常的来源?

时间:2016-06-16 09:37:30

标签: java exception exception-handling stream

我已经为解析类实现了一个run方法,它使用这样的while循环处理一些输入管道:

while (true) {
    try {
        // do something
    }
    catch (EndOfStreamException e) {

        closePorts();
        break;
    }
}

现在,我的问题是我正在处理多个输入流,所以我不能只关闭第一个异常的所有端口。我必须知道哪一个输入流抛出它然后完全关闭该流。

这里的最佳做法是什么?有没有办法将这些信息添加到异常本身?我是否必须将有关哪个输入流的信息作为字符串发送到消息,然后解析此字符串?

我想做这样的事情:

while (true) {
    try {
        // do something
    }
    catch (EndOfStreamException e) {

        closePort(e.getIndexOfPort);    // something like this??
        break;
    }
}

提前谢谢!

菲利普

1 个答案:

答案 0 :(得分:1)

您可能想尝试捕捉个别电话。

在以下示例中,Input是一个虚假的类来说明这一点,而inputsList的{​​{1}}。

请注意,Input语句将退出break循环,您可能需要中断到特定标签以退出while循环,或者可能从您的方法返回。

for