问题标签 [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 投票
2 回答
6138 浏览

bash - Bash:最后(尝试,除外)异常

我想在 bash 脚本的末尾执行一些命令,即使用户按下 CTRL+C 来取消它的执行。

我知道我可以从另一种编程语言(例如 Python)中运行 bash 脚本,这样我就可以使用“finally”(try-finally)块来执行一些代码。

但是知道 StackOverflow 是一个交流绝妙想法的中心,我想问是否有办法从我的 bash 脚本中做我想做的事情。

那么,想法?

编辑:

我想要的是杀死在我的 bash 中打开的每个进程,即 selenium 和 Xvfb 进程。

我尝试将其写入代码:

但这迫使我在脚本内部每次运行子进程时多次按“CTRL + C”,例如:

将陷阱行的结尾从 EXIT 更改为 SIGINT ,如下所示:

做同样的事情。

现在在第一个 CTRL+C 上退出什么?

因为我试图在字符串的最后添加一个“exit 1”,比如 trap "... ;exit 1"

它可以在第一个 CTRL+C 上退出,但没有杀死我想要的进程。

想法?

0 投票
11 回答
144553 浏览

java - Java Try Catch finally 没有 Catch 的块

我正在审查一些新代码。该程序只有一个 try 和一个 finally 块。由于排除了 catch 块,如果 try 块遇到异常或任何可抛出的东西,它是如何工作的?它只是直接进入finally块吗?

0 投票
4 回答
999 浏览

java - 在处理 n 层时在调用堆栈中捕获高位异常?

假设我有 3 层应用程序前端域和数据访问。我已经读过,在调用堆栈中捕获高位异常是个好主意......所以如果我得到一个数据访问异常,域层只会做一个 finally,就像这样

尝试{

}finally{ //清理 }

并让数据访问异常渗透到前端层。这不是通过让前端层处理内脏来破坏分层吗?我认为每一层都应该处理或包装并抛出它无法处理到其调用层的异常......有什么想法吗?

0 投票
3 回答
2073 浏览

java - 在 finally 块中对象引用设置为 null

为什么输出是 CoolReturn,而不是 null?

问候,
Mahendra Atheria

0 投票
5 回答
6940 浏览

java - 如果我在命令行中键入 Ctrl-C,Java 中的 finally 块还会执行吗?

cmd.exe在 Windows 中运行我的 Java 应用程序。如果我通过按 Ctrl-C 强制停止该过程,并且当时的代码正在块中运行,那么tryfinally块是否仍会执行?

在我的测试中,似乎是的,它被执行了。

0 投票
3 回答
4008 浏览

java - 为什么 finally 中的代码即使在 try 块中返回也会执行?

代码:

这段代码如何执行?

0 投票
11 回答
692 浏览

c# - finally 在哪里是必要的?

我知道如何使用 try-catch-finally。但是我没有得到使用的进步,finally因为我总是可以将代码放在 try-catch 块之后。有什么明确的例子吗?

0 投票
2 回答
1884 浏览

java - java - 如何在Java中记录被finally块的异常掩盖的异常?

请注意:我知道在 Javafinally块中永远不应该抛出异常,否则这是 [非常、非常、非常] 不好的做法。
知道我应该使用try-catchinsidefinally来处理(例如记录或忽略)所有异常并防止它们传播。
知道Java 7 的 Throwable 有getSuppressed方法,但我的目标是 Java 5 和 6。

问题:在Java中,try-finally如果块抛出异常(命名为Atry,则控制到达finally块(如果没有异常,它也会到达它,但在这个问题中并不有趣)。然后,如果finallyblock 抛出异常(将其命名为B),异常A被抑制或屏蔽/吞咽,异常B被传播给调用者。

问题:当一个异常被另一个异常抑制并记录/记录第一个异常时,我能以某种方式检测到这种情况吗?
...我花了太多时间来推理为什么会抛出特定的异常并且不知道到底发生了什么。

理由:经常有问题try-finally的块被编码在一个库中(今天它是 Hibernate),所以我无法修改它们。

解决方案限制:正如我在开头所指出的,可能的解决方案不应该依赖于 Java 7,但另一方面,不需要是生产级的(如果是这样将是一个奖励)。AOP 是这里的一个选项。

(请不要发布诸如“使用 Java 7 进行开发”之类的琐碎答案:)

0 投票
1 回答
1304 浏览

.net - C++/CLI 堆栈语义等效于 C# 的现有对象 using 语句?

我知道 C++/CLI 相当于这个 C# 代码:

这是:

但是是否有类似的简洁和类似 RAII 的方式来表达这一点:

或者:

? 我拥有的最接近的工作示例是:

但这似乎不太好。

0 投票
6 回答
1377 浏览

java - finally 和 no finally 和有什么不一样?

和有什么区别

我已经读到您可以从catch块内部返回并且仍然finally执行该块。还有其他区别吗?