Questions tagged «try-finally»



7
为什么在finally块中更改返回的变量不会更改返回值?
我有一个简单的Java类,如下所示: public class Test { private String s; public String foo() { try { s = "dev"; return s; } finally { s = "override variable s"; System.out.println("Entry in finally Block"); } } public static void main(String[] xyz) { Test obj = new Test(); System.out.println(obj.foo()); } } 这段代码的输出是这样的: Entry in …
146 java  try-finally 



11
最终尝试和尝试捕获之间的区别
之间有什么区别 try { fooBar(); } finally { barFoo(); } 和 try { fooBar(); } catch(Throwable throwable) { barFoo(throwable); // Does something with throwable, logs it, or handles it. } 我更喜欢第二个版本,因为它使我可以使用Throwable。两种变体之间是否存在任何逻辑差异或首选约定? 另外,有没有办法从finally子句访问异常?

6
在C#中尝试/最终的开销?
关于何时以及为什么使用try/catch和try/ catch/我们已经看到了很多问题finally。而且我知道try/肯定有一个用例finally(尤其是因为它是using语句的实现方式)。 我们还看到了有关try / catch和exception开销的问题。 但是,我链接到的问题并没有涉及仅进行最终尝试的开销。 假设try块中没有发生任何异常,那么确保finally语句在离开try块时得到执行(有时通过从函数返回)有什么开销? 同样,我只询问try/ finally,不catch,不抛出异常。 谢谢! 编辑:好的,我将尝试更好地展示我的用例。 我应该使用哪种,DoWithTryFinally还是DoWithoutTryFinally? public bool DoWithTryFinally() { this.IsBusy = true; try { if (DoLongCheckThatWillNotThrowException()) { this.DebugLogSuccess(); return true; } else { this.ErrorLogFailure(); return false; } } finally { this.IsBusy = false; } } public bool DoWithoutTryFinally() { this.IsBusy = true; if …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.