我正在运行一个线程,其主要操作是使用阻塞函数调用代理,并等待它给它一些东西.
我已经使用了挥发性布尔值和中断的已知模式,但我不确定它是否会起作用:当我尝试添加一个catch块时InterruptedException,我得到错误:
InterruptedException的无法访问的catch块.永远不会从try语句主体抛出此异常
因此,如果我永远不会得到一个InterruptedException,这意味着我永远不会摆脱阻止行动 - 因此永远不会停止.
我有点不解.任何的想法?
public void run() {
Proxy proxy = ProxyFactory.generateProxy();
Source source;
while (!isStopped) {
try {
source = proxy.getPendingSources();
scheduleSource(source);
} catch (Exception e) {
log.error("UnExpected Exception caught while running",e);
}
}
}
public void stop() {
this.isStopped = true;
Thread.currentThread().interrupt();
}
Run Code Online (Sandbox Code Playgroud)