我已经为解析类实现了一个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;
}
}
提前谢谢!
菲利普
答案 0 :(得分:1)
您可能想尝试捕捉个别电话。
在以下示例中,Input
是一个虚假的类来说明这一点,而inputs
是List
的{{1}}。
请注意,Input
语句将退出break
循环,您可能需要中断到特定标签以退出while循环,或者可能从您的方法返回。
for