在下面的代码中,只能使用try-catch块处理在匿名类实例化中编写的Thread.sleep(3000);
。为什么throws InterruptedException
子句不允许异常传播?
public static void main(String[] args) throws InterruptedException {
Runnable task = new Runnable() {
public void run() {
// below line explicitly need to be handled using try-catch. throws keyword does not work here
Thread.sleep(3000);
}
};
}
答案 0 :(得分:2)
run()
方法缺少throws InterruptedException
子句。 main()
有一个,run()
在main()
内定义的类中定义并不重要。他们是两种不同的方法。
不可能在run()
中添加一个,因为Runnable
不允许run()
拥有throws
子句。因此,唯一的解决方案是使用try / catch块包装sleep
。