
{filelink=4357}
class MesExceptions extends Exception {
private int x;
public MesExceptions() {
}
public MesExceptions(String msg) {
super(msg);
}
public MesExceptions(String msg, int x) {
super(msg);
this.x = x;
}
public int val() {
return x;
}
public String getMessage() {
return "Detail de l'exception: " + x + " " + super.getMessage();
}
}
public class PersonnaliserException {
public static void f() throws MesExceptions {
System.out.println("Jeter l'exception � partir de f()");
throw new MesExceptions(); // Appel du constructeur sans argument
}
public static void g() throws MesExceptions {
System.out.println("Jeter l'exception � partir de g()"); // Appel du constructeur avec 1 seul argument
throw new MesExceptions("Originated in g()");
}
public static void h() throws MesExceptions {
System.out.println("Jeter l'exception � partir de h()");
throw new MesExceptions("Originated in h()", 47); // Appel du constructeur avec 2 arguments
}
public static void main(String[] args) {
try {
f();
} catch (MesExceptions e) {
e.printStackTrace();
}
try {
g();
} catch (MesExceptions e) {
e.printStackTrace();
}
try {
h();
} catch (MesExceptions e) {
e.printStackTrace();
System.err.println("e.val() = " + e.val());
}
}
}