Question 10


Récupérer une saisie de l'utilisateur en mode console.

Je veux stocker ce que saisit l'utilisateur à partir de son clavier dans une variable.
J'ai fait le code suivant mais ça ne marche pas :

  System.out.println("Sasissez qq chose ");
  BufferedReader br=new BufferedReader( new InputStreamReader(System.in));
  String S;
  S=br.readLine();
  System.out.println(S);
  br.close();
 

et voici ce que me donne le compilateur :


test.java:9: unreported exception java.io.IOException; must be caught or
declared to be thrown
        S=br.readLine();
            ^
test.java:11: unreported exception java.io.IOException; must be caught or
declared to be thrown
        br.close();
          ^
2 errors


Le problème vient de la gestion des exceptions liées à l'utilisation de la classe BufferedReader. Les opérations de lecture ou d'écriture dans les flots d'octets sont considérées comme sources potentielles d'erreurs. Celles-ci doivent être traitées avec un bloc try {...} catch (..) {...}.

Le programme corrigé donne :

      System.out.println("Sasissez qq chose ");
      try {
       BufferedReader br=new BufferedReader( new InputStreamReader(System.in));
       String S;
       S=br.readLine();
       System.out.println(S);
       br.close();
      } catch (IOException ioe) {
	System.out.println(ioe.toString());
      }