// ---------------
// Exceptions.java
// ---------------
final class ExceptionsTest {
private static int c = 0;
private static void f (boolean b) throws IllegalAccessException, InstantiationException {
if (b)
throw new InstantiationException("abc");
else
throw new IllegalAccessException("abc");}
private static void g () throws InstantiationException {
try {
f(true);
assert false;
}
catch (IllegalAccessException e) {
assert false;}
finally {
++c;}
assert false;}
private static void h () throws InstantiationException {
try {
f(true);
assert false;
}
catch (IllegalAccessException e) {
assert false;}
catch (InstantiationException e) {
assert e.toString().equals("java.lang.InstantiationException: abc");
throw e;}
finally {
++c;}
assert false;}
public static void main (String[] args) {
System.out.println("Exceptions.java");
assert c == 0;
try {
f(true);
assert false;
}
catch (IllegalAccessException e) {
assert false;}
catch (InstantiationException e) {
assert e.toString().equals("java.lang.InstantiationException: abc");}
assert c == 0;
try {
g();
assert false;
}
catch (InstantiationException e) {
assert e.toString().equals("java.lang.InstantiationException: abc");}
assert c == 1;
try {
h();
assert false;
}
catch (InstantiationException e) {
assert e.toString().equals("java.lang.InstantiationException: abc");}
assert c == 2;
System.out.println("Done.");}}
syntax highlighted by Code2HTML, v. 0.9.1