Soit le listing ci-dessous :
class MonException extends Exception {
MonException() { super(); }
MonException(String s) { super(s); }
}
class MaSousException extends MonException {
MaSousException() { super(); }
MaSousException(String s) { super(s); }
}
class TestException
{
public static void main(String[] args)
{
for (int i = 0; i < args.length; i++)
{
try
{
System.out.println("");
except(Integer.valueOf(args[i]).intValue());
System.out.println("TestException avec \"" + args[i] +
"\" n'a pas créé d'exception");
}
catch (MonException e)
{
System.out.println("MonException lancée par TestException \"" + args[i] +
"\" (Message:" + e.getMessage()+")");
}
catch (Exception e)
{
System.out.println("TestException \"" + args[i] + "\" à lancé "
+ e.getClass() + "\n avec le message: " + e.getMessage());
}
}
}
static int except(int n) throws MonException
{
int i = 0;
String[] as = new String[6];
try
{
switch(n)
{
case 1:
return i/i;
case 2:
throw new MaSousException("THROW de blabla");
case 3:
throw new MonException("THROW c'est THROW");
case 4:
as[2]="Quatre";
return Integer.valueOf(as[2]).intValue();
case 5:
as = new String[2];
case 6:
i = as[2].length();
return i;
}
return 0;
}
catch (MaSousException e)
{
System.out.println("MaSousException interceptée dans Except");
throw e;
}
finally {
System.out.println("[Appel de except(\"" + n +"\") terminé]");
}
}
}
Indiquez ce qui va être affiché a l'écran si on lance le programme avec les arguments suivant:
TestException 4 2 7 5 1 6 3
NB: N'oubliez pas qu'une variable de type String doit être créée avant utilisation. Une simple affectation s="chaine" équivaut à une création car cela revient à écrire s= new String("chaine").
Servez-vous de l'extrait de la hiérarchie de classes d'exceptions ci-dessous :
· class java.lang. Error
· class java.lang. LinkageError
· class java.lang. VirtualMachineError
· class java.lang. Exception
· class java.lang. ClassNotFoundException
· class java.util.zip. DataFormatException
· class java.io. IOException
· class java.lang. RuntimeException
· class java.lang. ArithmeticException
· class java.lang. ClassCastException
· class java.lang. IllegalArgumentException
· class java.lang. NumberFormatException
· class java.lang. IndexOutOfBoundsException
· class java.lang. ArrayIndexOutOfBoundsException
· class java.lang. StringIndexOutOfBoundsException
· class java.lang. NullPointerException