问题标签 [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 回答
4479 浏览

c# - 我应该如何初始化将在 try/catch/finally 块中使用的变量?

如果我使用 try/catch/finally 块,我应该在哪里以及如何初始化变量?例如说我正在尝试使用 FileStream 。我想捕获在创建或使用流时抛出的任何异常。然后,无论是否有任何问题,我都想确保创建的任何流都已关闭。

所以我会做这样的事情:

然而,这给了我在 finally 块说中的错误unassigned local variable fs。但是,如果我将声明更改fsSystem.IO.FileStream fs = null它就可以了。

为什么我需要显式设置fs为null?我也尝试fs在 try 块中声明,但随后The name fs does not exsist in the current context在 finally 块中出现错误。

顺便说一句:我知道我可以使用 Using 块,但我的问题的重点是了解 try/catch/finally 块的正确用法。

0 投票
1 回答
8498 浏览

.net - 如何正确处理 ThreadInterruptedException?

方法threadMethod通过System.Threading.Thread运行。线程可能会被中断,因此可能会在 finally 块中抛出异常ThreadInterruptedException ,对吗?我是否必须再次将块包含在 try-catch 中?

谢谢!

0 投票
3 回答
133 浏览

.net - 确定是否从异常处理程序调用代码(使用语句)?

我想做一些有点傻的事情。在我Dispose()的对象方法中,我想为该对象打印一个调试跟踪,告诉我它活着时发生的所有事件。

但是由于这需要时间和金钱,我只想在Dispose()因为抛出异常而被调用时才这样做。

所以我想做

.NET 是否有这样一个我可以查询的 exceptionIsCurrentlyRaised 属性?

0 投票
11 回答
20533 浏览

java - 为什么我们使用 finally 块?

据我所知,以下两个代码片段都将用于相同的目的。为什么有finally块?

代码 A:

代码 B:

0 投票
5 回答
1555 浏览

c# - finally 在使用 F5 时似乎没有在 C# 控制台应用程序中执行

在 VS2008 中按 F5 时,finally 块似乎没有执行。我在控制台应用程序中使用此代码。

0 投票
4 回答
1547 浏览

java - 在 try\finally 阻止 finally 不会执行时是否存在这种情况?

我正在学习面向对象编程的测试,我想知道是否有任何情况下考虑以下代码:

finally块不会执行?

0 投票
2 回答
4009 浏览

c# - Marshal.FreeHGlobal 是否应该放在 finally 块中以确保资源被释放?

我有以下代码块:

是否应该将该块包装在 try 中,并将 FreeHGlobal 命令放在 finally 块中。(以防中间命令抛出异常)。

在这种情况下,finally 可以防止内存泄漏似乎是有道理的,但是从我在网上找到的示例来看,finally 没有被使用。也许无论如何这些资源都会被自动处理掉(即使它们是不受管理的)。

0 投票
4 回答
89891 浏览

python - 使用带有try-except块的python“with”语句

这是将python“with”语句与try-except块结合使用的正确方法吗?:

如果是,那么考虑旧的做事方式:

这里“with”语句的主要好处是我们可以摆脱三行代码吗?这个用例对我来说似乎没有什么吸引力(尽管我知道“with”语句还有其他用途)。

编辑:上述两个代码块的功能是否相同?

EDIT2:前几个答案一般谈论使用“with”的好处,但这些似乎是边际收益。多年来,我们都(或应该)明确地调用 f.close()。我想一个好处是马虎的编码员将受益于使用“with”。

0 投票
6 回答
297 浏览

c# - 最后:是否保证在任何情况下都会被调用

是否有任何很小的可能性finally不会被调用但应用程序仍在运行?

我在那里释放信号量

并害怕失去其中的一些。

0 投票
3 回答
442 浏览

java - 块捕获中的丢失异常

我运行这段代码:

结果:
尝试:1
捕获:2
最后:3
线程“main”中的异常 java.lang.NullPointerException 在 user.main(User.java:17)

在块中捕获 - ArrayIndexOutOfBoundsException,但是我们丢失了这个异常,为什么?