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 {
return result;
}
}
我的一个朋友是.NET开发人员,目前正在迁移到Java,他问我关于这个来源的以下问题.理论上,这必须抛出IOException(“Exception rised.”)并且整个方法retIntExc()必须抛出Exception.但没有任何反应,该方法返回2.
我没有测试他的例子,但我认为这不是预期的行为.
编辑:谢谢你的所有答案.有些人忽略了这个方法被称为retIntExc的事实,这意味着这只是一些测试/实验示例,显示了抛出/捕捉机制中的问题.我不需要’修复’,我需要解释为什么会这样.