问题标签 [finally]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 在 finally 块中抛出异常
有没有办法,如何获得当前抛出的异常(如果存在)?
我想减少代码量并为任务应用一些重用,如下所示:
并用以下代码替换它:
这种情况可能吗?
谢谢
java - 多重返回:哪一个设置最终返回值?
鉴于此代码:
语言规范是否定义了调用的返回值test()
?换句话说:在每个 JVM 中它总是相同的吗?
在 Sun JVM 中,返回值为2
,但我想确定,这不是 VM 相关的。
java - 终于在异常处理中
finally
异常处理中的块究竟执行了什么?
c# - finally 块中的异常
考虑以下代码,其中 LockDevice() 可能会失败并自行引发异常。如果在 finally 块中引发异常,在 C# 中会发生什么?
java - Java try finally 变体
这个问题困扰了我一段时间,但我还没有找到完整的答案(例如,这个问题是用于 C#在 try/finally 外部或内部初始化一次性资源)。考虑以下两个 Java 代码片段:
和第二个变体
让我担心的部分是线程可能在获取资源的那一刻(例如打开文件)之间有些中断,但结果值没有分配给相应的局部变量。除了以下情况之外,线程是否有任何其他情况可能会在上述情况下被中断:
- 抛出 InterruptedException(例如通过 Thread#interrupt())或 OutOfMemoryError 异常
- JVM 退出(例如通过 kill、System.exit())
- 硬件故障(或 JVM 中的错误以获取完整列表 :)
我读过第二种方法更“惯用”,但在上述情况下,IMO 没有区别,在所有其他情况下它们都是平等的。
所以问题:
两者有什么区别?如果我确实担心释放资源(尤其是在大量多线程应用程序中),我应该更喜欢哪个?为什么?
如果有人指出支持答案的部分 Java/JVM 规范,我将不胜感激。
java - 在finally块中设置reference = null?
null
我的一位同事在 finally 块中设置了引用。我认为这是无稽之谈。
你怎么看呢?
java - Java中finally块的要点是什么?
我认为以下示例;但无法弄清楚 finally 块的重要性是什么。你能告诉我这两个代码示例的执行有什么不同吗?一个现实生活中的例子也会有所帮助。
样品 1:
样本 2:
java - 理解“finally”块
我已经编写了七个测试用例来理解finally
块的行为。工作原理背后的逻辑是什么finally
?
为什么builder = null
不工作?
为什么builder.append("+1")
起作用,而count++
( in trySeven ())不起作用?
c# - 确定是否由于抛出异常而在 finally 块中执行
finally
由于抛出异常,是否可以确定代码当前是否正在处理程序的上下文中执行?我更喜欢使用该IDisposable
模式来实现进入/退出范围功能,但对这种模式的一个担忧是,如果using
. 我会寻找这样的东西:
还有其他方法可以实现这一点(将委托传递给围绕具有特定行为的调用的函数),但我很好奇是否可以使用该IDisposable
模式来做到这一点。
实际上,这显然在此之前已被问及。有可能以一种非常骇人听闻的方式进行检测。我实际上不会使用这种技术,但有趣的是知道它是可能的。