static int retIntExc() throws Exception{
int result = 1;
try {
result = 2;
throw new IOException(\"Exception rised.\");
} catch (ArrayInd
By putting return in finally method you override thrown exception and result is returned instead. Your code should be something like this:
static int retIntExc() throws Exception{
int result = 1;
try {
result = 2;
throw new IOException("Exception rised.");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(e.getMessage());
result = 3;
} finally {
// do something
}
// it gets here only when exception is not thrown
return result;
}