java - 这个违反直觉的 Java "feature"背后的原因是什么?

标签 java

Possible Duplicate:
Java try-finally return design question

考虑以下方法:

public boolean test() {
   try {
      return false;
   } finally {
      return true;
   }
}

为什么返回true ?我知道finally部分总是被执行,但是它应该首先执行try部分并返回true并退出该方法吗?有人能用简单的话解释一下为什么 Java 会这样吗?我认为这是非常违反直觉的。

最佳答案

由于“finally”总是执行,因此它是在放弃方法外部的控制流(即返回)之前执行的。

但是如果JVM在try block 中暂停,finally将不会被执行。

关于java - 这个违反直觉的 Java "feature"背后的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8231947/

相关文章:

java - 实例方法是如何存储的

java - 如何处理实现 Comparable<?> 而不是 Comparable<E> 的类?

java - 从 JBoss 到 Tomcat 的 JMXProxy

java程序在windows中等待1小时

java - 冒泡排序和选择排序

java - Jersey 客户端读取超时,但 Apache HTTP 客户端连接正常

java - SureFire 插件 : -"The forked VM terminated without saying properly goodbye. VM crash or System.exit called ? " 的问题

java - 使用 objectify 存储和加载实体会返回不同的结果

java - 在 java 中给予应用程序焦点

java - 打印数组中设定值之间的所有数字