我注意到使用
为什么我不必显式捕获
Integer.parseInt()
时,即使它会抛出NumberFormatException
异常,我也不必在代码中加入try-catch语句或声明方法可能会抛出异常。为什么我不必显式捕获
NumberFormatException
异常或声明我的方法会抛出该异常呢?
RuntimeException
是必须要捕获的,而有些检查异常则可以在调用方法前进行额外的检查以避免。 - LoduwijkNumberFormatException
是一个通常应该捕获的异常。在将字符串转换为数字之前,尝试检查其格式不如捕获NumberFormatException
更好,因为这样你仍然可能会遇到未捕获的NumberFormatException
异常。 - LoduwijkIOException
是许多 API 中经常抛出的异常之一。对我来说,这可能是最常见的异常,也是我在他人代码中看到的最常见的异常。有很多地方你被迫捕获IOException
或其子类,但在使用抛出它的 API 的某些上下文中,它永远不会被抛出。 - LoduwijkIOException
,但这种第三类型的情况与#2相反。文件未找到异常通常是根据用户的文件系统有时会发生的异常。然而,尽管它是一个被检查异常,但在访问文件之前技术上可以检查文件是否存在,并且这样做非常简单(只需要一行代码)。比检查String
的数字格式要容易得多。 - LoduwijkFile.exists
,但这很笨重)。 - Loduwijk