我四处询问有关在线程上下文中捕获已检查异常的问题;接受的答案是使用Callable
s 和Future
s。
但我意识到我可以简单地用匿名线程包装“工作”方法并捕获异常,因为它将在没有线程的情况下执行。
(worker的逻辑从实现Callable的新类移到调用者类)
class BlaBla{
public void foo(){
Thread th = new Thread(new Runnable() {
public void run() {
try {
doWork();
} catch (MyCheckedException e) {
dosomething();
}
}
});
th.start();
}
public void dowork throws MyCheckedException{
}
这种方法有什么问题吗?