Java异常try{}catch{}中的return机制
在探索try{}catch{}finally{}
中return的时机之前,我们先根据return的位置,定义一下return的类型。
private static String test() {
String str = "start";
try {
return str = "try ruturn"; //这里定义为正常return
} catch (Exception e) {
return str = "catch ruturn"; //这里定义为异常return
}finally {
return str = "finally ruturn"; //这里定义为最终return
}
return "method return"; //这里定义为方法return
}
return的规则
- 最终return和方法return是互斥的,即在一个方法中,最终return和方法return只能写一个,否则编译无法通过(或者IDE会报错)。
- 当正常return和异常return都有的时候,最终return可有可无,但是方法return一定不能有,否则报错。
- 当有最终return的时候,正常return和异常return可有可无。
- 当没有最终return的时候,要么一定要有正常return和异常return,要么一定要有方法return。