为什么以下代码无法执行
try {
System.out.println("abc");
}
catch(FileNotFoundException e) {
e.getMessage();
}
但是为什么要执行
try {
System.out.println("abc");
}
catch(Exception e) {
e.getMessage();
}
答案 0 :(得分:0)
打印语句不会引发FileNotFoundException
错误,而Exception
会捕获Java中的任何通用异常。
答案 1 :(得分:0)
这是因为FileNotFoundException是所谓的Checked Exception。
仅当System.out.println显式抛出它时,它才会发生。
编译器可以检测到&对其进行标记。
另一方面,Exception可能掩盖了RuntimeException或其子类。
(例如,不需要显式声明的NullPointerException)
编译器无法检测到该错误,因此必须允许RuntimeException,RuntimeException本身,Exception和Throwable的子类。