Gestion des exceptions par le compilateur

cs_xav44 Messages postés 11 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 9 décembre 2008 - 5 mai 2005 à 14:10
cs_xav44 Messages postés 11 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 9 décembre 2008 - 10 mai 2005 à 20:17
Bonjour,



Suite à un developpement (pas mal mouvementé) d'una application Web
complexe en Java, mon collegue m'a fait remarqué que dans certains cas
des méthodes lançant une exeption nous obligeaient à "catcher"
l'exception dans notre code et dans d'autres ce n'etait necessaire. Moi
ca ne me dérange pas mais je ne saurais pas expliquer le pourquoi du
comment.

J'ai join un bout de code qui compile pour illustrer notre interrogation :



import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;



public class Test

{



public static void main(String[] args)

{

String sNomFic = args[0];

BufferedReader oReader;

FileReader oFReader;



String sTest = "";

try

{

//
public java.io.FileReader(java.lang.String arg) throws java.io.FileNotFoundException

oFReader = new FileReader(sNomFic);



oReader = new BufferedReader(oFReader);



//
Public String readLine() throws java.io.IOException

sTest = oReader.readLine();

}

catch (FileNotFoundException e)

{

e.printStackTrace();

}

catch (IOException e)

{

e.printStackTrace();

}




// public java.lang.Integer(java.lang.String arg) throws java.lang.NumberFormatException

Integer oInt = new Integer(sTest);



int i = oInt.intValue();

int j = Integer.parseInt(sTest);

}

}



J'ai mis les prototypes en rouges au dessus des méthodes et constructeurs qui m'interessent.



Ma question : Pourquoi le constructeur FileReader l'oblige a catcher l'exception dans mon code et pas le constructeur Integer ?



Merci d'avance pour votre réponse,

Bonne journée,

Xav 44

2 réponses

bjdc Messages postés 16 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 18 mai 2005
7 mai 2005 à 13:28
Parce que java.lang.NumberFormatException fait partie des RuntimeException, tout comme par exemple ArrayIndexOutOfBound, etc



La lecture de la classe RuntimeException
donne plus de détail, mais en gros ces exceptions n'ont pas besoin
d'être recuperées par le programme, elles le sont par la JVM et cause
l'arrêt du programme.
0
cs_xav44 Messages postés 11 Date d'inscription vendredi 26 septembre 2003 Statut Membre Dernière intervention 9 décembre 2008
10 mai 2005 à 20:17
Cool merci !

je me suis couché moins con hier soir et j'ai pu frimer au taf aujourd'hui. Ca fesais pas tres serieux pour un professionnel de pas savoir ca .


Bonne journée

Xav44
0
Rejoignez-nous