相关疑难解决方法(0)

catch中的return语句的行为,最后

请参阅以下代码并解释输出行为.

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语句会发生什么?

java try-catch-finally

67
推荐指数
4
解决办法
5万
查看次数

在Scala中显式写入'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

5
推荐指数
1
解决办法
99
查看次数

在Scala中返回finally块的值

可能重复:
scala中的"return"和"try-catch-finally"块评估

有两个Scala函数:

一个): def foo(): Int = try { 1 } finally { 2 }

B): def bar(): Int = try { return 1 } finally { return 2}

我无法弄清楚为什么foo返回1但bar返回2.

scala

3
推荐指数
1
解决办法
1624
查看次数

标签 统计

scala ×2

java ×1

try-catch-finally ×1