问题标签 [try-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.
java - finally 块中的堆栈溢出错误处理
我有一个java程序,可以无限次运行。
程序代码:
输出:这个程序通过不断地打印两个系统输出来无限运行。
我的问题:在某些时候,它开始从 try 块中抛出 StackOverflowErrors ,因此它到达 finally 块,我们再次递归地调用这个函数。但是由于我们已经面临 StackOverflowError,finally 块中的递归函数是如何执行的呢?
JVM 如何处理这种情况?如果我们也得到 OutOfMemoryErrors 会发生同样的行为吗?
java - 如何正确处理图形上下文 - 我需要尝试吗?(Java 1.7)
如何正确处理图形上下文 - 我需要使用try
andfinally
吗?简单的例子:
编辑
这是 java.awt.Window 类的一个示例:
如我所见,使用的构造函数非常简单,但try
仍然finally
存在。所以我认为使用它们是一个好习惯。
workflow - finally 块在 try 块被取消时运行
在我的 TFS2012 构建工作流程中,我有一个 Parallel 活动,并且在一些分支中我有 try-finally 活动。如果一个分支失败(例如,使用 CodeAnalysis 编译发现 CodeAnalysis 错误),则其他分支将被取消。但是,如果一个分支在一个包含块的 try 块内finally
,则 finally 块运行,如果花费超过 30 秒,则取消失败,并显示:
BuildWarning: The workflow instance accepted a stop request but did not complete within 00:00:29.9922015. This may indicate an AsyncCodeActivity is active that does not support cancellation.
我想避免这样的消息,所以:
- 我可以以某种方式进行
try-finally
最终运行的活动,当在内部引发异常时try
,而不是在整个事情被取消时? - 如果没有,我想
if
在块内添加一个finally
工作流已被取消的块,而不是做长时间的事情。我如何知道工作流已被取消?
编辑:这种模式甚至出现在 TFS2012 附带的 DefaultTemplate.11.1.xaml 中 - CopyDirectory 可能需要很长时间,但它位于TryCatch.Finally
:
java - 使用try-finally返回后的java惰性代码
我发现使用 finally 有代码“返回后”的可能性,这里有一些例子:
作为(在我看来更懒惰)的替代性:
所以,问题是,哪个更快,更具可读性,是的,在这种情况下,我真的关闭了一个 BufferedReader,所以是 try-finnaly 还是我使用错误的方式?
c++builder - TCriticalSection 并尝试 __finally 块
什么是最佳实践(cs 是 TCriticalSection)
我见过很多
但是为什么不在 try 块中进入临界区呢?它会引起任何问题吗?
python - 尝试并最终在 python 中
我假设如果 finally 块中发生了某些事情,那么在 try 块中返回不是一个好主意。我只是想在敲别人的头之前确定执行顺序!
java - JVM 如何执行 Try catch finally 块
根据 Java 语言规范,第 14.20.2 节
通过首先执行 try 块来执行带有 finally 块的 try 语句。然后有一个选择:
- 如果try块的执行正常完成,则执行finally块,然后有一个选择:
- 如果 finally 块正常完成,则 try 语句正常完成。
- 如果 finally 块由于原因 S 突然完成,则 try 语句由于原因 S 突然完成
如果我正确解释它,那么在执行 try 块之后最终会被调用,但是这一切是如何工作的以及为什么我得到输出,
我想知道这个东西是如何产生输出 10 的。
就是当 try 块执行并遇到 return 语句时,输出值已经被压入堆栈,然后执行 finally 块
我知道首先遇到 return 然后 finally 块运行所以输出为 10,但是
jvm 如何解释或 try finally 块如何由 jvm 处理或转换?
是jvm使用GOTO部分跳转部分去finally部分还是堆栈已经维护?
c# - C# Web 服务 - 返回然后最后 - 先发生什么
在 C#.NET 中,我们来看下面的例子
现在假设方法 C 是一个长期运行的过程。
调用 TakeAction 的客户端是在调用方法 C 之前,还是在调用/完成之后取回返回值?
java - 为什么打印 1?
我有代码:
我不明白为什么要打印 1 。
java - 在Java中,构造函数中的最后一个块何时执行?
例如:
创建 Test 对象后,传递给讲师的 InputStream 是否立即关闭?还是在 Test 对象被销毁时关闭?我不知道如何在 C++ 中实现类似于析构函数的东西。