请参阅以下代码并解释输出行为.
public class MyFinalTest {
public int doMethod(){
try{
throw new Exception();
}
catch(Exception ex){
return 5;
}
finally{
return 10;
}
}
public static void main(String[] args) {
MyFinalTest testEx = new MyFinalTest();
int rVal = testEx.doMethod();
System.out.println("The return Val : "+rVal);
}
}
Run Code Online (Sandbox Code Playgroud)
结果是返回Val:10.
Eclipse显示警告:finally block does not complete normally.
catch块中的return语句会发生什么?
这是Scala cli中的代码:
scala> def ff(): Int = try {return 1} finally {return 2}
scala> println(ff())
2
scala> def gg(): Int = try {1} finally {2}
scala> println(gg())
1
Run Code Online (Sandbox Code Playgroud)
我想知道为什么添加return关键字有区别?非常感谢!
有两个Scala函数:
一个): def foo(): Int = try { 1 } finally { 2 }
B): def bar(): Int = try { return 1 } finally { return 2}
我无法弄清楚为什么foo返回1但bar返回2.