Files
codeql/java/ql/test/library-tests/successors/SchackTest/SchackTest.java
2018-08-30 10:48:05 +01:00

31 lines
646 B
Java

public class SchackTest {
class ExA extends Throwable {}
class ExB extends Throwable {}
void foo(int x) {
try {
try {
if (x==1)
throw new ExA();
if (x==2)
return;
} finally {
if (bar())
System.out.println("true successor");
}
System.out.println("false successor");
} catch (ExA e) {
System.out.println("false successor");
} catch (ExB e) {
System.out.println("successor (but neither true nor false successor)");
} finally {
System.out.println("false successor");
}
}
private boolean bar() throws ExB {
if (Math.random() > .5)
throw new ExB();
return Math.random() > .3;
}
}