声明异常但未处理SCJP

时间:2014-02-05 00:04:30

标签: java

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()方法中做什么?

1 个答案:

答案 0 :(得分:1)

如果join()抛出异常并在makeItSo()处理它,那么makeItSo()可能不需要将其抛向main()(或者调用makeItSo()的人})。更重要的是,如果这个main是你唯一的main()方法并且没有从其他地方调用,它不应该抛出任何可能抛出的异常,而是在try-catch(-finally)块中处理它们。 / p>