FileNotFoundException vs. NoSuchFileException

2022-09-02 22:09:22

我注意到另一个Java异常,指示文件不存在 - 。我的任务是重构某个api,该API从不同的方法中抛出这两个,我只想使用一个。NoSuchFileException

我应该映射到 文件吗?我应该使用而不是因为它更具体吗?NoSuchFileExceptionFileNotFoundExceptionNoSuchFileExceptionFileNotFoudnException

编辑:更新了问题。在发布此问题之前,我阅读了文档,并知道基本区别。在这种情况下,我希望获得更多信息和指导,因为按类型进行异常处理对于服务API的客户端很重要,并且我希望避免需要对两种异常类型进行检查的情况。


答案 1

FileNotFoundException

指示尝试打开由指定路径名表示的文件失败。当具有指定路径名的文件不存在时,、 和构造函数将引发此异常。如果文件确实存在但由于某种原因无法访问,例如,当尝试打开只读文件进行写入时,这些构造函数也会抛出它。FileInputStreamFileOutputStreamRandomAccessFile

NoSuchFileException

尝试访问不存在的文件时引发的已检验异常。

文档是不言自明的。


答案 2

与 不同,并不一定意味着文件不存在,它可能只是无法访问。除此之外,我不确定你有什么不同。NoSuchFileExceptionFileNotFoundException


推荐