public class Starter extends Thread{
private int x = 2;
public static void main(String[] args) throws Exception {
new Starter().makeItSo();
}
public Starter()
{
x = 5;
start();
}
public void makeItSo() throws Exception {
join();
x = x - 1;
System.out.println(x);
}
public void run() {
x *= 2;
}
}
我理解代码是如何工作的,答案是“9”。但我对Exception概念有疑问。据我所知join()
方法抛出一个Exception
,即Interrupted Exception
,所以我们声明了异常,但为什么我们没有在main方法中处理该异常?
假设我在同一个方法中处理了这个异常,我声明了join()
。那么我需要在main()
方法中做什么?
答案 0 :(得分:1)
如果join()抛出异常并在makeItSo()
处理它,那么makeItSo()
可能不需要将其抛向main()
(或者调用makeItSo()
的人})。更重要的是,如果这个main是你唯一的main()
方法并且没有从其他地方调用,它不应该抛出任何可能抛出的异常,而是在try-catch(-finally)块中处理它们。 / p>