2016-06-17 9 views
-5

Ich begann über Java I/O Teil zu lernen und etwas schien mir ein bisschen komisch. Daher werfen die meisten Klassen in java.io-Paket IOException, aber aus irgendeinem Grund java.io.File nicht. Wieso ist es so?Java: java.io.File Klasse

Wenn wir so etwas tun:

File file = new File("theFilePath"); 

Was passiert, wenn diese Datei nicht existiert? Sollte das nicht (in diesem Fall) FileNotFoundException auslösen? Ich weiß, dass Sie auf diese Weise nach etwas suchen können, wie isFile() oder exists() (ich denke). Aber warum bietet Java keine speziellen Ausnahmen für solche Fälle, genau wie für FileReader oder ähnliche Klassen?

+5

Haben Sie die [Dokumentation] (https://docs.oracle.com/javase/7/docs/api/java/io/File.html) gelesen? Sie missverstehen, was dieser Konstruktor tut. – tnw

+1

Ausnahmen sollten für Ausnahmefälle, nicht Grundlogik verwendet werden. – SLaks

Antwort

0

Die File-Klasse Konstruktor wird nicht fehl, wenn die Datei nicht bereits

existiert Wenn Sie es wünschen ein Fehler

boolean fileExists = file.exists(); 

in einem Try-catch-Block verwenden zu werfen.

Aktuelle Java-Ausnahmen werden für Ausnahmefälle verwendet und werden nicht für grundlegende Logik verwendet.