相关疑难解决方法(0)

尝试中真正发生的事情{return x; } finally {x = null; 声明?

我在另一个问题中看到了这个提示,并想知道是否有人可以向我解释这是如何工作的?

try { return x; } finally { x = null; }
Run Code Online (Sandbox Code Playgroud)

我的意思是,该finally条款真正执行return声明?这段代码的线程不安全吗?你能想到这个try-finally黑客可以做的任何额外的hackery 吗?

.net c# exception-handling

253
推荐指数
4
解决办法
7万
查看次数

从Java中的finally块返回

最近我惊讶地发现在Java中的finally块中可以有一个return语句.

似乎很多人认为这样做是不好的,如' 不要在最终条款中返回 '中所描述的那样.更深入地抓了一下,我还发现' Java的回归并不总是 ',这显示了最终块中其他类型的流控制的一些非常可怕的例子.

所以,我的问题是,有人能给我一个例子,其中finally块中的return语句(或其他流控制)产生更好/更可读的代码吗?

java return exception try-catch-finally

168
推荐指数
5
解决办法
6万
查看次数

java中finally子句中的return语句有危险吗?

看下面的代码。尽管 catch 子句本身会引发异常,但 finally 块的 return 语句会导致该异常被吞掉。即使 catch 块中出现问题,此方法也会返回 420。

private static int foo() throws Exception
{
    try {
        throw new Exception("try");

    } catch (Exception ex) {
        throw new Exception("catch");
    } finally {
        String s = "";
        return 420;
    }


}
Run Code Online (Sandbox Code Playgroud)

java exception

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