java - 已声明异常但未处理 SCJP

标签 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”。但我对异常的概念有疑问。据我所知 join() 方法抛出一个 ExceptionInterrupted Exception ,所以我们声明了该异常,但为什么我们没有处理该异常主要方法?

假设我在声明 join() 的同一方法中处理此异常。那么我需要在 main() 方法中做什么??

最佳答案

如果 join() 抛出异常并且您在 makeItSo() 中处理它,那么 makeItSo() 可能不需要将其抛出到 main()(或调用 makeItSo() 的人)。更重要的是,如果这个 main 是您唯一的 main() 方法并且没有从其他地方调用,那么它不应该抛出任何可能抛出的异常,而是在 try-catch(-最后) block 。

关于java - 已声明异常但未处理 SCJP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21566144/

相关文章:

java - 在服务中调用 DAO 时出现 AbstractMethodError 和 null maper

java - 以编程方式编辑图像以供拼图使用

java - OBIEE 12c 调用 java 方法。找不到EJB和方法

java - Couchbase、Spring 和 JPA

Java二进制转换器

java - 如何在java中将byte []转换为Mat

java - 评估 JPA 提供程序 : Market share of Hibernate/EclipseLink?

java - 如何将 Java 结果集转换为 Railo 中的 ColdFusion 查询?

java - 管理和加载属性的最佳实践

java - 转换为 Long 和调用 longValue 之间有什么区别?