cs_xav44
Messages postés11Date d'inscriptionvendredi 26 septembre 2003StatutMembreDernière intervention 9 décembre 2008
-
5 mai 2005 à 14:10
cs_xav44
Messages postés11Date d'inscriptionvendredi 26 septembre 2003StatutMembreDerniè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 ?
bjdc
Messages postés16Date d'inscriptionsamedi 7 mai 2005StatutMembreDernière intervention18 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.