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”。但我对异常的概念有疑问。据我所知 join()
方法抛出一个 Exception
即 Interrupted Exception
,所以我们声明了该异常,但为什么我们没有处理该异常主要方法?
假设我在声明 join()
的同一方法中处理此异常。那么我需要在 main()
方法中做什么??
最佳答案
如果 join() 抛出异常并且您在 makeItSo()
中处理它,那么 makeItSo()
可能不需要将其抛出到 main()
(或调用 makeItSo()
的人)。更重要的是,如果这个 main 是您唯一的 main()
方法并且没有从其他地方调用,那么它不应该抛出任何可能抛出的异常,而是在 try-catch(-最后) block 。
关于java - 已声明异常但未处理 SCJP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21566144/