问题标签 [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 - Try-finally 阻止 StackOverflowError
看看以下两种方法:
清楚地运行会bar()
导致 a StackOverflowError
,但运行foo()
不会(程序似乎无限期地运行)。这是为什么?
delphi - 我什么时候应该使用“尝试”块,我应该使用哪种?
关于 Delphi 中异常处理的两个非常基本的问题。
1) 什么时候Try
?我的猜测是我不需要一个Try
子句
- 简单的代码,例如赋值、条件和循环
- 访问我的 VCL 组件
但我确实需要Try
- 数据库访问
- 任何第三方组件,因为我不知道它们是否会引发异常
- 帮助系统显示的任何内容都可能引发异常
我错过了什么吗?
2)尝试...最后还是尝试...除了...或两者兼而有之?多年来,我一直认为这是一个非此即彼的选择,直到@RRUZ用一些代码 回答了我的一个问题
问题:是不是只捕获来自CoInitialize(nil);
或也来自的异常SetStaticIpAddress('Network card name','192.168.1.1','255.255.255.0');
?
换句话说,是否有可能在一次尝试中最终获得我的蛋糕并吃掉它?
[更新] #2 的答案似乎是肯定的。此代码显示两个对话框...
vb.net - 在 try / finally 块中抛出双重异常
这是代码示例:
我发现它只会抛出 SecondException 而 FirstException 就消失了。
我认为 FirstException 会在 SecondException 的 InnerException 属性内,但它似乎不是。
我没有阻止任何事情,因为我真的不需要出现 FirstException,我只是对这种行为很感兴趣。
有没有办法知道 SecondException 在上层捕获它时确实首先被抛出?
如果第一个异常确实被第二个覆盖,原因是什么?
它发生在所有其他语言中吗?合乎逻辑吗?
c# - 从方法返回是否正确处理对象?
如果您使用该using
方法而不是让我们说FileStream.Close();
,该类会正确处理吗?
相当于:
或者:
c# - C# 监控用户退出应用程序时的行为
我将以下代码用于网页的关键部分
在这里,lockObj 是类的静态成员。我的问题是,如果用户在执行关键部分时关闭网页或浏览器会发生什么?lockObj 是否对未来的页面请求保持锁定状态?
python-2.7 - 使用 Try: 和 finally: 删除现有文件并将新输出写入文件
我试图检查并删除现有的输出文件,并写入一个新文件。但是,我的代码似乎不起作用,因为它只捕获上次迭代的输出。
python - 龙卷风生成器引擎中的内存泄漏,当连接关闭时,try/finally 阻塞
gen
当连接关闭而不读取响应时,这个很棒的代码显示了龙卷风模块中的内存泄漏:
现在,多次运行一个简单的测试客户端
现在,服务器输出显示,内存使用量增加:
如果设置CHUNK_COUNT
为 1,则 10KB 的数据可以写入 OS 连接缓冲区,并且 'finished' 和 'finally' 文本将打印到控制台,并且由于生成器已完成,因此不会发生内存泄漏。
但奇怪的是,如果你删除 try/finally 块,问题就消失了!!(即使CHUNK_COUNT
设置为 100)
这是 CPython 或龙卷风上的错误还是...?!
c# - 为什么finally没有被执行?
我的假设是只要程序正在运行,finally 块总是会被执行。但是,在这个控制台应用程序中,finally 块似乎没有被执行。
输出
注意:当抛出异常时,windows 询问我是否要结束应用程序,我说“是”。
powershell-2.0 - 当 $ErrorActionPreference = "Stop" 时按顺序执行 finally 块
我们正在使用Start-Transcript
并Stop-Transcript
记录 PowerShell 脚本的输出。
该脚本正在执行应用程序的安装,因此$ErrorActionPreference = "Stop"
如果遇到任何错误,我们也会停止执行。
这样做的问题是,如果发生错误,脚本会在错误输出到控制台之前停止。这意味着错误不会包含在我们的日志文件中。即使我们使用try...finally
如下方式也是如此:
运行此脚本的控制台输出为:
我们可以做些什么来确保错误消息包含在日志中?
python - finally 子句中的 Python 异常会吃掉先前的异常
在我的真实情况下,aSegmentation fault
出现在finally
我无能为力的子句中,因为它源于通过 ctypes 使用的外部库。实际上,我并不关心这个段错误,因为脚本无论如何都完成了。
但是,finally 中的段错误会吃掉之前发生的所有异常。因此,首先NameError
从调试开始iDontExist
变得很痛苦。它不会在任何地方发生。目前没有办法看到在段错误之前引发的任何异常。
你觉得我能做些什么呢?修复外部库不是一种选择。