问题标签 [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.

0 投票
6 回答
12166 浏览

java - Try-finally 阻止 StackOverflowError

看看以下两种方法:


清楚地运行会bar()导致 a StackOverflowError,但运行foo()不会(程序似乎无限期地运行)。这是为什么?

0 投票
1 回答
261 浏览

delphi - 我什么时候应该使用“尝试”块,我应该使用哪种?

关于 Delphi 中异常处理的两个非常基本的问题。

1) 什么时候Try?我的猜测是我不需要一个Try子句

  • 简单的代码,例如赋值、条件和循环
  • 访问我的 VCL 组件

但我确实需要Try

  • 数据库访问
  • 任何第三方组件,因为我不知道它们是否会引发异常
  • 帮助系统显示的任何内容都可能引发异常

我错过了什么吗?

2)尝试...最后还是尝试...除了...或两者兼而有之?多年来,我一直认为这是一个非此即彼的选择,直到@RRUZ用一些代码 回答了我的一个问题

问题:是不是只捕获来自CoInitialize(nil);或也来自的异常SetStaticIpAddress('Network card name','192.168.1.1','255.255.255.0');

换句话说,是否有可能在一次尝试中最终获得我的蛋糕并吃掉它?


[更新] #2 的答案似乎是肯定的。此代码显示两个对话框...

0 投票
2 回答
1541 浏览

vb.net - 在 try / finally 块中抛出双重异常

这是代码示例:

我发现它只会抛出 SecondException 而 FirstException 就消失了。

我认为 FirstException 会在 SecondException 的 InnerException 属性内,但它似乎不是。

我没有阻止任何事情,因为我真的不需要出现 FirstException,我只是对这种行为很感兴趣。

  • 有没有办法知道 SecondException 在上层捕获它时确实首先被抛出?

  • 如果第一个异常确实被第二个覆盖,原因是什么?

  • 它发生在所有其他语言中吗?合乎逻辑吗?

0 投票
3 回答
94 浏览

c# - 从方法返回是否正确处理对象?

如果您使用该using方法而不是让我们说FileStream.Close();,该类会正确处理吗?

相当于:

或者:

0 投票
2 回答
148 浏览

c# - C# 监控用户退出应用程序时的行为

我将以下代码用于网页的关键部分

在这里,lockObj 是类的静态成员。我的问题是,如果用户在执行关键部分时关闭网页或浏览器会发生什么?lockObj 是否对未来的页面请求保持锁定状态?

0 投票
2 回答
575 浏览

python-2.7 - 使用 Try: 和 finally: 删除现有文件并将新输出写入文件

我试图检查并删除现有的输出文件,并写入一个新文件。但是,我的代码似乎不起作用,因为它只捕获上次迭代的输出。

0 投票
1 回答
1241 浏览

python - 龙卷风生成器引擎中的内存泄漏,当连接关闭时,try/finally 阻塞

gen当连接关闭而不读取响应时,这个很棒的代码显示了龙卷风模块中的内存泄漏:

现在,多次运行一个简单的测试客户端

现在,服务器输出显示,内存使用量增加:

如果设置CHUNK_COUNT为 1,则 10KB 的数据可以写入 OS 连接缓冲区,并且 'finished' 和 'finally' 文本将打印到控制台,并且由于生成器已完成,因此不会发生内存泄漏。

但奇怪的是,如果你删除 try/finally 块,问题就消失了!!(即使CHUNK_COUNT设置为 100)

这是 CPython 或龙卷风上的错误还是...?!

0 投票
5 回答
244 浏览

c# - 为什么finally没有被执行?

我的假设是只要程序正在运行,finally 块总是会被执行。但是,在这个控制台应用程序中,finally 块似乎没有被执行。

输出

结果

注意:当抛出异常时,windows 询问我是否要结束应用程序,我说“是”。

0 投票
2 回答
761 浏览

powershell-2.0 - 当 $ErrorActionPreference = "Stop" 时按顺序执行 finally 块

我们正在使用Start-TranscriptStop-Transcript记录 PowerShell 脚本的输出。

该脚本正在执行应用程序的安装,因此$ErrorActionPreference = "Stop"如果遇到任何错误,我们也会停止执行。

这样做的问题是,如果发生错误,脚本会在错误输出到控制台之前停止。这意味着错误不会包含在我们的日志文件中。即使我们使用try...finally如下方式也是如此:

运行此脚本的控制台输出为:

我们可以做些什么来确保错误消息包含在日志中?

0 投票
1 回答
2116 浏览

python - finally 子句中的 Python 异常会吃掉先前的异常

在我的真实情况下,aSegmentation fault出现在finally我无能为力的子句中,因为它源于通过 ctypes 使用的外部库。实际上,我并不关心这个段错误,因为脚本无论如何都完成了。

但是,finally 中的段错误会吃掉之前发生的所有异常。因此,首先NameError从调试开始iDontExist变得很痛苦。它不会在任何地方发生。目前没有办法看到在段错误之前引发的任何异常。

你觉得我能做些什么呢?修复外部库不是一种选择。