Introduire donnée IOexception comprend pas

Fermé
be-good - 21 mai 2008 à 16:44
 be-good - 1 juin 2008 à 21:54
Bonjour,


Voila en fait j'ai un petit cours de programmation basique dans lequel on voit des bases de java
Comme j'ai bientôt examen je m'entraine un peu mais la je bloque

lorsque j'essaye de le faire marcher il m'indique ceci:
unreported exception java.io.IOException; must be caught or declared to be thrown (à la ligne 16 )

j'ai regarder sur le net mais je ne comprend pas toujours tout donc si vous pouviez y jeter un coup d'oeil ce serait super sympa

je suis novice dans la matière

merci d'avance




/**
* @(#)initiamxminpermu.java
*un programme qui initialise un tableau et qui permute le max avec le min
*
* @author
* @version 1.00 2008/5/21
*/

import java.io.*;
public class initiamxminpermu {


public static int[] initialisation (int [] tab) {
BufferedReader clavier = new BufferedReader (new InputStreamReader (System.in));
System.out.println("un nombre pour commencer :");
int x = Integer.parseInt(clavier.readLine()); <--------------------------ici la ligne 16
for (int i=0;i<tab.length;i++){
tab[i]=x;
x+=3;
System.out.print(tab[i]);
}
return tab;
}
public static void inversemaxmin (int [] tab){
int max=tab[0];
int min=tab[0];
for (int i=0;i<tab.length;i++){
if (tab[i]>max)
max=i;
if (tab[i]<min)
min=i;
}
int j= tab[max];
tab[max] =tab[min];
tab[min]=j;
}
public static void main(String[]args) {

int [] tab = new int [15];
initialisation(tab);
inversemaxmin(tab);
System.out.println();
for (int i=0;i<tab.length;i++)
System.out.print(tab[i]);
}


}

3 réponses

Une IOException est une exception qui survient lorsqu'il y a un problème avec un flux d'entrée et/ou de sortie. Pour l'intercepter, il faut utiliser un bloc try/catch. Essaie comme ça :

public static int[] initialisation (int [] tab) throws IOException {

try{
BufferedReader clavier = new BufferedReader (new InputStreamReader (System.in));
System.out.println("un nombre pour commencer :");
int x = Integer.parseInt(clavier.readLine()); <--------------------------ici la ligne 16
for (int i=0;i<tab.length;i++){
tab[i]=x;
x+=3;
System.out.print(tab[i]);
}

catch (IOException err){
System.out.println("Erreur : " +err);
}
}
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
1 juin 2008 à 21:18
Bonsoir,
Petit complément à ce que dit Youp (sur les exception en général) :
Le message d'erreur que le compilateur t'indique ne signifie pas que ton programme est faux, mais qu'une exception est susceptible d'être levée lors de l'exécution de ton programme (si par exemple tu essaies d'ouvrir un fichier et que ce fichier n'existe pas sur ton disque dur, le programme ne peut pas le savoir avant d'avoir tenté de l'ouvrir).

Il faut donc prévoir des mécanisme de gestion des exceptions, d'où le bloc try/catch:
- le try c'est pour indiquer le code qui doit être exécuté
- le catch, c'est le code qui doit être exécuté en cas de problème (ça peut aller du simple message d'erreur à une gestion balèze, par exemple la création du fichier manquant dans l'exemple que je t'ai suggéré, un rollback sur une base de données dans des autres cas...).
0
merci!!!!!!!!!!!!
0