finally相关内容

如果我在命令行中输入CTRL-C,Java语言中的最后一个挡路还会执行吗?

我在Windows的cmd.exe中运行我的Java应用程序。如果我按Ctrl-C组合键强制停止进程,而当时的代码正在try挡路中运行,finally挡路还会执行吗? 在我的测试中,它似乎是被执行的。 推荐答案 而您的最终代码可能已在您的Windows机上执行(我无法用linux重现它),根据this documentation on finally: 注意:如果JVM在尝 ..
发布时间:2022-03-07 19:22:33 Java开发

从 finally 块返回时 Java 的奇怪行为

试试这段代码.为什么 getValueB() 返回 1 而不是 2?毕竟, increment() 函数被调用了两次. 公共类 ReturningFromFinally{public static int getValueA()//这会按预期返回 2{尝试{返回1;}最后 { 返回 2;}}public static int getValueB()//我希望它返回 2,但它返回 1{尝试{返回 ..
发布时间:2022-01-19 15:10:25 Java开发

Try-catch-finally-return 澄清

通过阅读本论坛中与上述主题相关的所有问题(见标题),我完全理解 finally 总是被调用.(除了 System.exit 和无限循环).但是,我想知道是否在 catch 块中调用了 return,然后从 finally 块中调用了另一个 return. 例如: public static void main(String[]args) {int a = new TestClass().a ..
发布时间:2022-01-19 14:35:44 Java开发

多重返回:哪一个设置最终返回值?

鉴于此代码: 字符串测试(){尝试 {返回“1";} 最后 {返回“2";}} 语言规范是否定义了调用 test() 的返回值?换句话说:在每个 JVM 中它总是相同的吗? 在 Sun JVM 中,返回值为 2,但我想确定,这与 VM 无关. 解决方案 是的,语言规范 定义“2"是结果.如果 VM 的做法有所不同,则说明它不符合规范. 大多数编译器都会抱怨它.例如 Ecli ..
发布时间:2022-01-19 14:32:41 Java开发

我们可以使用“return"吗?在最后块

我们可以在 finally 块中使用 return 语句吗?这会导致任何问题吗? 解决方案 从 finally 块内部返回会导致 exceptions 丢失. finally 块中的 return 语句将导致 try 或 catch 块中可能抛出的任何异常被丢弃. 根据Java 语言规范: 如果 try 块的执行由于任何其他原因突然完成R,然后执行finally块,然后有 ..
发布时间:2022-01-08 12:18:51 Java开发

C++,__try 和 try/catch/finally

我想知道关于 C++ 的 try/catch/finally 块.我见过这些带有两个下划线的命令,比如 __try.但是 MVSC 2010 项目也可以在没有下划线的情况下运行.那么什么时候需要这些下划线呢? 解决方案 在 Windows 上,操作系统级别支持异常.它们被称为结构化异常处理 (SEH),大致相当于 Unix 信号.为 Windows 生成代码的编译器通常利用这一点,他们使用 ..
发布时间:2022-01-08 11:49:30 C/C++开发

C++ 是否支持“最终"块?(我一直听到的这个“RAII"是什么?)

C++ 是否支持'finally'块? 什么是 RAII 习语? C++的RAII习语和C#的'有什么区别使用'语句? 解决方案 不,C++ 不支持“finally"块.原因是 C++ 支持 RAII:“Resource Acquisition Is Initialization"——一个真正有用的概念糟糕的名字†. 这个想法是对象的析构函数负责释放资源.当对象具有自动存 ..
发布时间:2022-01-08 11:34:22 C/C++开发

java try finally块以关闭流

我想在 finally 块中关闭我的流,但它抛出了一个 IOException 所以看起来我必须在我的 finally 中嵌套另一个 try 块 块以关闭流.这是正确的做法吗?看起来有点笨重. 代码如下: public void read() {尝试 {r = new BufferedReader(new InputStreamReader(address.openStream())); ..
发布时间:2022-01-07 19:58:52 Java开发

如何在 Edge 中添加 polyfill 以支持 finally()?

我正在使用 axios 库并使用 then()、catch() 和 finally().在 Chrome 中完美运行.然而,finally() 方法在 MS Edge 中不起作用.我研究过使用 polyfills 或垫片,但我迷路了.我没有使用 webpack 或转译,也不打算添加它们.我需要保持这个简单.如何添加 polyfill 以确保 finally() 在 Edge 中工作?谢谢! ..
发布时间:2021-12-29 10:24:29 前端开发

在 Java 中,是“finally"块保证被调用(在主方法中)?

我是 Java 新手,我想知道我是否有以下典型的 Java 代码 public class MyApp {公共静态无效主(字符串 [] args){尝试 {//做东西} 抓住 {//处理错误} 最后 {//清理连接等}}} JVM 是否保证 finally 块会一直运行?为了理解我从哪里来,我已经习惯了 C/C++ 程序,如果您取消引用一个 NULL 指针,那么这些程序可能会崩溃,之后就无法运 ..
发布时间:2021-12-26 12:56:39 Java开发

在 finally 块中抛出异常

是否有一种优雅的方法来处理 finally 块中抛出的异常? 例如: 尝试{//使用资源.}捕获(异常前){//资源问题.}最后 {尝试{资源.关闭();}捕获(异常前){//无法关闭资源?}} 如何避免 finally 块中的 try/catch ? 解决方案 我通常是这样做的: 尝试{//使用资源.} 捕捉(异常前){//资源问题.} 最后 {//收起资源.关闭安静(资源) ..
发布时间:2021-12-17 17:32:43 Java开发

我们可以使用“返回"吗?在 finally 块中

我们可以在 finally 块中使用 return 语句吗?这会导致任何问题吗? 解决方案 从 finally 块内部返回将导致 exceptions 丢失. finally 块中的 return 语句将导致任何可能在 try 或 catch 块中抛出的异常被丢弃. 根据Java 语言规范: 如果 try 块的执行由于任何其他原因突然完成R,然后执行finally块,然后 ..
发布时间:2021-12-17 17:26:29 Java开发

C++、__try 和 try/catch/finally

我有点想知道 C++ try/catch/finally 块.我见过这些带有两个下划线的命令,比如 __try.但是 MVSC 2010 项目也没有下划线运行.那么什么时候需要这些下划线? 解决方案 在 Windows 上,在操作系统级别支持异常.称为结构化异常处理 (SEH),它们大致相当于 Unix 信号.为 Windows 生成代码的编译器通常利用这一点,它们使用 SEH 基础结构来 ..
发布时间:2021-12-17 16:55:49 C/C++开发

C++ 是否支持“finally"块?(我一直听到的这个“RAII"是什么?)

C++ 是否支持“终于' 块? 什么是RAII 惯用语? C++'s RAII idiom 和 C#'s '有什么区别using'语句? 解决方案 不,C++ 不支持“finally"块.原因是 C++ 转而支持 RAII:“资源获取即初始化"——一个糟糕的名字† 一个真正有用的概念. 这个想法是一个对象的析构函数负责释放资源.当对象具有自动存储持续时间时,对象的析构函数 ..
发布时间:2021-12-17 16:42:23 C/C++开发

finally 块是否总是运行?

是否有任何条件最终可能无法在 Java 中运行?谢谢. 解决方案 来自 Sun 教程 注意:如果JVM在尝试时退出或者正在执行捕获代码,然后finally 块可能不会执行.同样,如果线程执行try 或 catch 代码被中断或被杀死,finally 块可能不会即使应用程序作为一个整体继续. 我不知道 finally 块不会执行的任何其他方式... ..
发布时间:2021-11-25 18:39:30 Java开发

多次返回:哪一个设置了最终的返回值?

鉴于此代码: 字符串测试(){尝试 {返回“1";} 最后 {返回“2";}} 语言规范是否定义了对test() 调用的返回值?换句话说:它在每个 JVM 中总是相同的吗? 在 Sun JVM 中,返回值是 2,但我想确定,这与 VM 无关. 解决方案 是的,语言规范 定义“2"是结果.如果 VM 以不同方式执行此操作,则不符合规范. 大多数编译器都会抱怨它.例如,Ecli ..
发布时间:2021-11-25 14:05:36 Java开发

如果没有抛出异常则执行

如果不抛出异常,我想执行一些代码. 目前我正在这样做: 尝试:返回类型,self.message_handlers[type](self,length - 1)最后:如果没有(self.exc_info()):self.last_recv_time = time.time() 这个可以改进吗?这是最好的方法吗? 更新0 可选的 else 子句在控制流出时执行try 子句的结尾 ..
发布时间:2021-09-10 18:34:55 Python

Python:是否可以访问“finally"子句中的返回值?

我在 try 子句中有一个 return 语句: def f():尝试:返回任何东西()最后:pass # 我如何得到这里返回的`whatever()`? 是否可以在finally 子句中获取返回值? 这更像是一个理论问题,所以我不是在寻找像将其保存到变量这样的解决方法. 解决方案 不,它不是 - finally 子句的内容独立于返回机制;如果您确实想查看返回的值,则必须按照您提 ..
发布时间:2021-07-09 20:51:00 Python