finally相关内容
我在Windows的cmd.exe中运行我的Java应用程序。如果我按Ctrl-C组合键强制停止进程,而当时的代码正在try挡路中运行,finally挡路还会执行吗? 在我的测试中,它似乎是被执行的。 推荐答案 而您的最终代码可能已在您的Windows机上执行(我无法用linux重现它),根据this documentation on finally: 注意:如果JVM在尝
..
试试这段代码.为什么 getValueB() 返回 1 而不是 2?毕竟, increment() 函数被调用了两次. 公共类 ReturningFromFinally{public static int getValueA()//这会按预期返回 2{尝试{返回1;}最后 { 返回 2;}}public static int getValueB()//我希望它返回 2,但它返回 1{尝试{返回
..
通过阅读本论坛中与上述主题相关的所有问题(见标题),我完全理解 finally 总是被调用.(除了 System.exit 和无限循环).但是,我想知道是否在 catch 块中调用了 return,然后从 finally 块中调用了另一个 return. 例如: public static void main(String[]args) {int a = new TestClass().a
..
鉴于此代码: 字符串测试(){尝试 {返回“1";} 最后 {返回“2";}} 语言规范是否定义了调用 test() 的返回值?换句话说:在每个 JVM 中它总是相同的吗? 在 Sun JVM 中,返回值为 2,但我想确定,这与 VM 无关. 解决方案 是的,语言规范 定义“2"是结果.如果 VM 的做法有所不同,则说明它不符合规范. 大多数编译器都会抱怨它.例如 Ecli
..
我们可以在 finally 块中使用 return 语句吗?这会导致任何问题吗? 解决方案 从 finally 块内部返回会导致 exceptions 丢失. finally 块中的 return 语句将导致 try 或 catch 块中可能抛出的任何异常被丢弃. 根据Java 语言规范: 如果 try 块的执行由于任何其他原因突然完成R,然后执行finally块,然后有
..
我想知道关于 C++ 的 try/catch/finally 块.我见过这些带有两个下划线的命令,比如 __try.但是 MVSC 2010 项目也可以在没有下划线的情况下运行.那么什么时候需要这些下划线呢? 解决方案 在 Windows 上,操作系统级别支持异常.它们被称为结构化异常处理 (SEH),大致相当于 Unix 信号.为 Windows 生成代码的编译器通常利用这一点,他们使用
..
C++ 是否支持'finally'块? 什么是 RAII 习语? C++的RAII习语和C#的'有什么区别使用'语句? 解决方案 不,C++ 不支持“finally"块.原因是 C++ 支持 RAII:“Resource Acquisition Is Initialization"——一个真正有用的概念糟糕的名字†. 这个想法是对象的析构函数负责释放资源.当对象具有自动存
..
我想在 finally 块中关闭我的流,但它抛出了一个 IOException 所以看起来我必须在我的 finally 中嵌套另一个 try 块 块以关闭流.这是正确的做法吗?看起来有点笨重. 代码如下: public void read() {尝试 {r = new BufferedReader(new InputStreamReader(address.openStream()));
..
我正在使用 axios 库并使用 then()、catch() 和 finally().在 Chrome 中完美运行.然而,finally() 方法在 MS Edge 中不起作用.我研究过使用 polyfills 或垫片,但我迷路了.我没有使用 webpack 或转译,也不打算添加它们.我需要保持这个简单.如何添加 polyfill 以确保 finally() 在 Edge 中工作?谢谢!
..
我是 Java 新手,我想知道我是否有以下典型的 Java 代码 public class MyApp {公共静态无效主(字符串 [] args){尝试 {//做东西} 抓住 {//处理错误} 最后 {//清理连接等}}} JVM 是否保证 finally 块会一直运行?为了理解我从哪里来,我已经习惯了 C/C++ 程序,如果您取消引用一个 NULL 指针,那么这些程序可能会崩溃,之后就无法运
..
是否有一种优雅的方法来处理 finally 块中抛出的异常? 例如: 尝试{//使用资源.}捕获(异常前){//资源问题.}最后 {尝试{资源.关闭();}捕获(异常前){//无法关闭资源?}} 如何避免 finally 块中的 try/catch ? 解决方案 我通常是这样做的: 尝试{//使用资源.} 捕捉(异常前){//资源问题.} 最后 {//收起资源.关闭安静(资源)
..
我们可以在 finally 块中使用 return 语句吗?这会导致任何问题吗? 解决方案 从 finally 块内部返回将导致 exceptions 丢失. finally 块中的 return 语句将导致任何可能在 try 或 catch 块中抛出的异常被丢弃. 根据Java 语言规范: 如果 try 块的执行由于任何其他原因突然完成R,然后执行finally块,然后
..
我有点想知道 C++ try/catch/finally 块.我见过这些带有两个下划线的命令,比如 __try.但是 MVSC 2010 项目也没有下划线运行.那么什么时候需要这些下划线? 解决方案 在 Windows 上,在操作系统级别支持异常.称为结构化异常处理 (SEH),它们大致相当于 Unix 信号.为 Windows 生成代码的编译器通常利用这一点,它们使用 SEH 基础结构来
..
C++ 是否支持“终于' 块? 什么是RAII 惯用语? C++'s RAII idiom 和 C#'s '有什么区别using'语句? 解决方案 不,C++ 不支持“finally"块.原因是 C++ 转而支持 RAII:“资源获取即初始化"——一个糟糕的名字† 一个真正有用的概念. 这个想法是一个对象的析构函数负责释放资源.当对象具有自动存储持续时间时,对象的析构函数
..
是否有任何条件最终可能无法在 Java 中运行?谢谢. 解决方案 来自 Sun 教程 注意:如果JVM在尝试时退出或者正在执行捕获代码,然后finally 块可能不会执行.同样,如果线程执行try 或 catch 代码被中断或被杀死,finally 块可能不会即使应用程序作为一个整体继续. 我不知道 finally 块不会执行的任何其他方式...
..
鉴于此代码: 字符串测试(){尝试 {返回“1";} 最后 {返回“2";}} 语言规范是否定义了对test() 调用的返回值?换句话说:它在每个 JVM 中总是相同的吗? 在 Sun JVM 中,返回值是 2,但我想确定,这与 VM 无关. 解决方案 是的,语言规范 定义“2"是结果.如果 VM 以不同方式执行此操作,则不符合规范. 大多数编译器都会抱怨它.例如,Ecli
..
在我的 Angular.js 应用程序中,我正在运行一些异步操作.在开始之前我用模态div覆盖应用程序,然后一旦操作完成,我需要删除div,无论操作成功与否. 目前我有这个: LoadingOverlay.start();Auth.initialize().then(function() {LoadingOverlay.stop();}, 功能() {LoadingOverlay.stop
..
如果不抛出异常,我想执行一些代码. 目前我正在这样做: 尝试:返回类型,self.message_handlers[type](self,length - 1)最后:如果没有(self.exc_info()):self.last_recv_time = time.time() 这个可以改进吗?这是最好的方法吗? 更新0 可选的 else 子句在控制流出时执行try 子句的结尾
..
我在 try 子句中有一个 return 语句: def f():尝试:返回任何东西()最后:pass # 我如何得到这里返回的`whatever()`? 是否可以在finally 子句中获取返回值? 这更像是一个理论问题,所以我不是在寻找像将其保存到变量这样的解决方法. 解决方案 不,它不是 - finally 子句的内容独立于返回机制;如果您确实想查看返回的值,则必须按照您提
..
我注意到,当在try {}中使用以下变量时,例如,最终我无法在其上使用方法: import java.io. *;公共班级{公共静态void main()抛出FileNotFoundException{尝试 {文件src =新文件("src.txt");文件des =新文件("des.txt");/*代码*/}最后 {尝试 {/*结束码*/System.out.print(“关闭文件后:src
..