【发布时间】:2012-01-12 15:35:01
【问题描述】:
如果我有这样的线程:
Thread t = new Thread(myThread);
t.start();
private static Runnable myThread = new Runnable() {
public void run() {
try{
String line=null;
while ((line = eStream.readLine()) != null){
//do something
}
}
catch (Exception e){}
}
};
现在在 while 循环中会发生什么,有时 readLine() 会挂起,因为它期待来自外部进程的输入。所以在这种情况下,我要做的是设置一个计时器,如果它到期,我 interrupt this thread t 和 t.interrupt();
现在,当我尝试在 try 块之后捕获 InterruptedException 时,出现编译时错误。有人可以告诉我在这种情况下,我怎样才能捕获中断异常?
谢谢
【问题讨论】:
-
你能显示导致编译时错误的代码吗?
-
@marchaos 实际上错误消息说 InterruptedException 的无法到达捕获块。这个异常永远不会从 try 语句体中抛出。所以我很困惑我必须在代码中的哪个位置捕获这个异常
-
我的错,我错过了 import java.io.InterruptedException;我想我无法在那里捕捉到这个异常。
标签: java multithreading interrupted-exception