Exeption处理

时间:2019-12-30 17:45:25

标签: java exception

为什么以下代码无法执行

try {
        System.out.println("abc");
    }
    catch(FileNotFoundException e) {
        e.getMessage();
    }

但是为什么要执行

    try {
        System.out.println("abc");
    }
    catch(Exception e) {
        e.getMessage();
    }

2 个答案:

答案 0 :(得分:0)

打印语句不会引发FileNotFoundException错误,而Exception会捕获Java中的任何通用异常。

答案 1 :(得分:0)

这是因为FileNotFoundException是所谓的Checked Exception。
仅当System.out.println显式抛出它时,它才会发生。
编译器可以检测到&对其进行标记。

另一方面,Exception可能掩盖了RuntimeException或其子类。
(例如,不需要显式声明的NullPointerException)
编译器无法检测到该错误,因此必须允许RuntimeException,RuntimeException本身,Exception和Throwable的子类。