web-dev-qa-db-fra.com

erreur: exception non signalée FileNotFoundException; doit être attrapé ou déclaré comme jeté

J'essaye de créer un programme simple qui produira une chaîne dans un fichier texte. En utilisant le code que j'ai trouvé ici, j'ai rassemblé le code suivant: 

import Java.io.*;

public class Testing {

  public static void main(String[] args) {

    File file = new File ("file.txt");
    file.getParentFile().mkdirs();

    PrintWriter printWriter = new PrintWriter(file);
    printWriter.println ("hello");
    printWriter.close();       
  }
} 

J-saisir me jette l'erreur suivante: 

 ----jGRASP exec: javac -g Testing.Java

Testing.Java:10: error: unreported exception FileNotFoundException; must be caught or declared to be thrown
    PrintWriter printWriter = new PrintWriter(file);
                              ^
1 error

 ----jGRASP wedge2: exit code for process is 1.

Depuis que je suis assez nouveau sur Java, je n'ai aucune idée de ce que cela signifie. Quelqu'un peut-il me diriger dans la bonne direction? 

10
user2956248

Vous ne dites pas au compilateur qu'il y a une chance de lancer une FileNotFoundException Une FileNotFoundException sera lancée si le fichier n'existe pas.

essaye ça

public static void main(String[] args) throws FileNotFoundException {
    File file = new File ("file.txt");
    file.getParentFile().mkdirs();
    try
    {
        PrintWriter printWriter = new PrintWriter(file);
        printWriter.println ("hello");
        printWriter.close();       
    }
    catch (FileNotFoundException ex)  
    {
        // insert code to run when exception occurs
    }
}
9
06needhamt

Si vous êtes très nouveau dans Java et que vous essayez simplement d'apprendre à utiliser PrintWriter, voici un code dépourvu de toute substance:

import Java.io.*;

public class SimpleFile {
    public static void main (String[] args) throws IOException {
        PrintWriter writeMe = new PrintWriter("newFIle.txt");
        writeMe.println("Just writing some text to print to your file ");
        writeMe.close();
    }
}
1

PrintWriter peut lever une exception s'il y a un problème avec le fichier, comme si le fichier n'existait pas. alors il faut ajouter

public static void main(String[] args) throws FileNotFoundException {

ensuite, il compilera et utilisera une clause try..catch pour intercepter et traiter l'exception.

Cela signifie que lorsque vous appelez new PrintWriter(file), une exception peut être levée. Vous devez soit gérer cette exception, soit permettre à votre programme de la revoir.

import Java.io.*;

public class Testing {

    public static void main(String[] args) {

    File file = new File ("file.txt");
    file.getParentFile().mkdirs();

    PrintWriter printWriter;
    try {
        printwriter = new PrintWriter(file);
        printWriter.println ("hello");
        printWriter.close();
    } catch (FileNotFoundException fnfe) {
        // Do something useful with that error
        // For example:
        System.out.println(fnfe);
    }
}
0
SQB