为什么 FileNotFoundException 是 CheckedException?

2022-09-03 13:11:55

我知道FileNotFound是检查异常,但尽管它是,只有在运行时才会发生此异常。它更像是算术异常(未选中)。

无论是选中还是取消选中,异常只会在运行时发生。

我的问题是为什么我们将相关内容称为已检查异常?FileNotFound/IO/DB

请分享您的宝贵想法:)


答案 1

始终仅在运行时遇到的异常,在处理异常时会产生差异。

选中或未选中意味着是在编译时强制处理它,还是仅在运行时遇到它时才会被识别。

如果检查了异常,则意味着编译器可以确定异常是否可能发生。并且每当您编译它时,您将被迫处理已检查的异常,并且通过这样做,运行时异常的机会将减少。

在文件处理过程中,编译器不会检查文件是否存在,它只是检查您是否已处理fileNotFoundException,因为一旦您处理文件,遇到此异常的几率非常高,您应该在代码中处理它。对于算术异常,在编译时无法找到它。因此,它不受检查。


答案 2

所有异常只能在运行时:)和 异常 之间的区别在于,编译器强制您处理异常或将它们添加到方法签名中,从而有效地强制调用方执行相同的操作(句柄/重写)。CheckedUncheckedchecked