Détecter la cause sous-jacente de java.io.FileNotFoundException
FileNotFoundException est jeté sur toutes sortes d'occasions, pas nécessairement seulement lorsque le nom de fichier n'est pas valide, mais également lors de l'e. g. les autorisations ne permettent pas la création d'un fichier ou lire:
java.io.FileNotFoundException: \\server\share\directory\test.csv (Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at java.io.FileWriter.<init>(FileWriter.java:73)
L'exemple ci-dessus montre une allemande de Windows se plaindre non valide nom d'utilisateur ou mot de passe.
Est-il un moyen court de l'analyse des exceptions message à faire un peu plus fine de l'information sur exactement pourquoi l'exception s'est produite? Problème avec le message de l'analyse est que dans des endroits différents les messages varient.
source d'informationauteur Daniel Schneller
Vous devez vous connecter pour publier un commentaire.
Faire la vérification d'existence du fichier/autorisations d'écriture /lecture vous-même avant de créer
FileOutputStream
.Avis que, parfois, vous devez vérifier les autorisations de lecture/écriture sur un parent de vous fichier de destination, si vous avez besoin de créer un nouveau fichier.
Vous voudrez peut-être vérifier les propriétés du fichier, à l'aide de la java.io.Fichier objet avant de tenter de lire le fichier. Il y a un canRead méthode que vous pouvez utiliser pour déterminer si oui ou non l'utilisateur peut lire le fichier.
Une approche consiste à regarder le type réel de l'exception: comme vous pouvez le voir à partir de la docsil y a beaucoup de sous-classes qui fournissent la plus fine granularité de l'information.
Cependant, vous n'obtiendrez probablement pas loin avec ça. Comme avec la plupart des checked exceptions, il est généralement préférable d'log/rapport de l'exception et de demander à l'utilisateur des choix sur la façon de les corriger.