Fichier Java De Gestion Des Exceptions
Je suis censé créer un exemple de programme pour la gestion des exceptions pour les opérations de fichier pour mon java affectation. Je vais avoir du mal à comprendre puisque je suis une C++ mec. Il serait vraiment très utile si quelqu'un pouvait indiquer la faille dans mon code ci-dessous. Je me réfère cette article. Eclipse est de me donner "Inaccessible bloc catch pour FileNotFoundException. Cette exception n'est jamais jeté de l'instruction try corps" erreur.
import java.io.*;
public class file {
public static void main(String[] args) {
String arg1 = args[0];
String arg2 = args[1];
System.out.println(arg1);
System.out.println(arg2);
File f1, f2;
try {
f2 = new File(arg2);
f1 = new File(arg1);
}
catch(FileNotFoundException e) {
/*
if(!f1.exists()) {
System.out.println(arg1 + " does not exist!");
System.exit(0);
}
if(!f2.exists()) {
System.out.println(arg2 + " does not exist!");
System.exit(0);
}
if(f1.isDirectory()) {
System.out.println(arg1 + " is a Directory!");
System.exit(0);
}
if(f2.isDirectory()) {
System.out.println(arg2 + " is a Directory!");
System.exit(0);
}
if(!f1.canRead()) {
System.out.println(arg1 + " is not readable!");
System.exit(0);
}
if(!f2.canRead()) {
System.out.println(arg2 + " is not readable!");
System.exit(0);
}*/
}
}
}
- À l'avenir, veuillez inclure le code dans votre question.
- désolé, je ne l'oubliez pas.
- Veuillez aussi lire de manière plus approfondie au sujet de Java
checked
etunchecked
expections. Les premiers hériter deException
classe le dernier deRuntimeException
.
Vous devez vous connecter pour publier un commentaire.
Regarder les docs pour la
File
constructeur, vous êtes d'appel. Le seulement exception il est déclaré à lancer estNullPointerException
. Par conséquent, il ne peut pas jeterFileNotFoundException
, qui est pourquoi vous obtenez l'erreur. Vous ne pouvez pas essayer d'attraper un checked exception qui le compilateur peut prouver n'est jamais lancée dans le correspondanttry
bloc.La création d'un
File
objet de ne pas vérifier son existence. Si vous avez été ouverture le fichier (par exemple avecnew FileInputStream(...)
puis que pourrait jeterFileNotFoundException
... mais pas seulement la création d'unFile
objet.FileInputStream
avec le fichier concerné.isDirectory
de la méthode. Si c'est un répertoire d'imprimer ce que vous souhaitez imprimer.C'est parce que le constructeur de la classe
File
avec un argumentjette une seule exception et c'est
NullPointerException
. Votre code essaie de prendre unFileNotFoundException
qui n'est pas liée àNullPointerException
et c'est pourquoi vous obtenez cette erreur dans Eclipse.Une façon est d'attraper les exceptions de la classe
Exception
qui est lesuper
classe de toutes les exceptions en Java. Une autre façon est d'attraper toutes les exceptions (chaque dans les différentscatch
bloc) qui l'a invoqué construire des lancers (qui peut facilement être obtenue au travers de son API). La troisième approche consiste à attraper les exceptions (qui sont en fait jeté par la construction) qui font sens pour votre application et d'ignorer les autres.