9
votes

Pourquoi est-ce que je reçois "doit être attrapé ou déclaré être lancé" sur mon programme?

J'ai travaillé sur ce programme pendant assez de temps en temps et mon cerveau est frit. Je pourrais utiliser une aide de quelqu'un à la recherche de quelqu'un.

J'essaie de créer un programme qui lit une ligne de fichier texte par ligne et que chaque ligne est faite dans un arrayliste code> afin que je puisse accéder à chaque jeton . Qu'est-ce que je fais mal? P>

U:\Senior Year\CS451- Operating Systems\Project1 PCB\PCB.java:24: unreported exception java.io.IOException; must be caught or declared to be thrown
            inputStream.close();}
                             ^
U:\Senior Year\CS451- Operating Systems\Project1 PCB\PCB.java:15: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
        inputStream = new BufferedReader(new FileReader("processes1.txt"));
                                         ^
U:\Senior Year\CS451- Operating Systems\Project1 PCB\PCB.java:18: unreported exception java.io.IOException; must be caught or declared to be thrown
        while ((l = inputStream.readLine()) != null) {
                                        ^


0 commentaires

6 Réponses :


15
votes

Lorsque vous travaillez avec des E / S en Java la plupart du temps, vous devez gérer IoException qui peut se produire à tout moment lorsque vous lisez / écriez ou même fermer le flux.

Vous devez mettre votre blocage sensible dans un essai // Catch Block et gérez l'exception ici. P>

Par exemple: P>

try{
    // All your I/O operations
}
catch(IOException ioe){
    //Handle exception here, most of the time you will just log it.
}


1 commentaires

Lisez le tutoriel pour les exemples.



8
votes

Java vérifie les spécifications d'exception à l'heure de la compilation. Vous devez soit attraper l'exception ou déclarer qu'il est lancé dans votre signature de méthode. Voici comment vous allez déclarer que cela peut être lancé à partir de votre méthode:

   public void read (String [] args) throws java.io.IOException {


0 commentaires

0
votes

Good IDes créera le bloc de capture pour vous ou ajoutera l'exception à la déclaration de méthode.

Soyez informé que si vous ajoutez les exceptions à la déclaration de méthode selon la solution de Colin, toute méthode qui invoque votre méthode devra également avoir un bloc de capture approprié ou déclarer l'exception dans la déclaration de méthode.


0 commentaires

-3
votes

J'ai eu le même problème. Je l'ai résolu en ajoutant la bibliothèque de printemps "org.springframework.core"


0 commentaires

0
votes

Vous pouvez plutôt faire

try{
    // All your I/O operations
}
catch(Exception e){
    //Handle exception here, most of the time you will just log it.
}


0 commentaires

0
votes

Chaque fois "une exception non déclarée IoException; doit être attrapé ou déclaré être jeté" Cette erreur est venue alors nécessaire pour mettre le code dans le bloc de capture. Exemple XXX


1 commentaires

Ou la méthode de la jointe peut déclarer l'exception comme jetable lui-même. De plus, vous voudrez peut-être utiliser la syntaxe try-with-ressources au lieu d'essayer simplement / attraper.