FileNotFoundException与NoSuchFileException

dev*_*ull 12 java io exception-handling exception

我注意到另一个Java异常表明该文件不存在 - NoSuchFileException.我的任务是重构一个api,它从不同的方法抛出这两个,我只想使用一个.

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

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

Jer*_*vel 7

FileNotFoundException异常

尝试打开由指定路径名表示的文件的信号失败.此异常将被抛出FileInputStream,FileOutputStream以及RandomAccessFile构造函数用指定的路径名的文件不存在.如果文件确实存在但由于某种原因无法访问,例如当尝试打开只读文件进行写入时,这些构造函数也会抛出它.

NoSuchFileException

尝试访问不存在的文件时抛出的已检查异常.

文档是不言自明的.

  • 似乎 FileNotFoundException 的 javadoc 不是最新的,因为 FileReader 的构造函数也抛出 FileNotFoundException,而异常的 javadoc 中没有提到它。 (2认同)

Luc*_*cas 6

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