Класс java.nio.file.Files создает исключение FileAlreadyExistsException в качестве «необязательного конкретного исключения». Что это значит? - PullRequest
3 голосов
/ 04 октября 2019

Кто-нибудь знает, что именно означает «необязательное конкретное исключение»?

https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html

Некоторые JVM выдают его, а некоторые нет? Если они этого не делают, бросают ли они общее IOException или вообще ничего не исключают? Есть ли статистика по различным реализациям, насколько это «необязательно»?

1 Ответ

3 голосов
/ 04 октября 2019

Из книги Джеффа Фризена "Java I / O, NIO and NIO.2":

FileAlreadyExistsException является примером необязательного конкретного исключения. Это необязательно, потому что он генерируется, когда базовая операционная система может обнаружить конкретную ошибку, приводящую к исключению. Если ошибка не может быть обнаружена, вместо нее выдается ее IOException предок.

...