- 浏览: 498275 次
- 性别:
文章分类
- 全部博客 (369)
- Java (48)
- Struts (1)
- Spring (4)
- Hibernate (7)
- WebServices (2)
- XML (3)
- web服务器 (12)
- PHP (16)
- FLEX (13)
- Flash (7)
- JavaScript (35)
- Ajax (4)
- Jquery (18)
- EXTJS (7)
- CSS (7)
- HTML (7)
- JSON (5)
- 好玩的 (1)
- 其他 (21)
- Oracle (35)
- mysql (12)
- Linux (12)
- JDBC (2)
- EJB3 (1)
- AOP (1)
- 正则表达式 (6)
- JSF (1)
- 设计模式 (1)
- RBAC (1)
- PowerDesigner (1)
- windows (1)
- 电脑工具软件 (3)
- SEO (3)
- maven (13)
- cms (9)
- JSP (5)
- jpbm (1)
- eclipse (8)
- sql (4)
- android (3)
- 浏览器 (5)
- 国外IT网站 (1)
- 文摘 (1)
- 文档 (31)
- doc命令 (1)
- webgl (1)
- html5 (1)
- ant (1)
- mongodb (0)
- 操作系统 (1)
- Dreamweaver (1)
- hadoop (2)
- xpath (1)
- nutch (1)
- window (1)
- xm (2)
- excel (1)
- httpclient (0)
- YII (2)
- CXF (1)
- Quartz (1)
- jsoup (2)
- wifi (2)
- logback (1)
- 硬件 (1)
- 工具 (3)
- freemark (1)
- ide (2)
- mail (1)
- log (1)
- ueditor (1)
- 链接 (1)
- reaver (2)
- js (1)
- .net (1)
- chrome (1)
- git (1)
- Docker (1)
- unicode (1)
- 多线程 (1)
- 并发 (1)
- Nashorn (3)
- Angular (1)
- curl (1)
- Cygwin (1)
- nashron (1)
- Babel (1)
- React Native (1)
- sip (1)
- openmeetings (1)
- IDEA (0)
- CAS (1)
最新评论
-
沉醉音乐的咖啡:
使用 preventDefault() 函数来阻止对表单的提交。 -
PhoenixHorse:
原表的索引啥的不就失效了吗
oracle修改表精度 -
yupengcc:
资料带走 3Q
RBAC模型 -
Java路:
...
JSON-LIB快速入门(转) -
damoqiongqiu:
utf-8下,E文字符占1个字节,中文字符占3个字节。如果一个 ...
AS3:截取定长度的字符串
我们从几个问题开始: 一、finally一定会执行吗? 二、下面语句的执行结果是: public class FinallyTest { public static void main(String[] args) { System.out.println("getValue()返回值为:" + getValue()); } public static int getValue() { try { return 0; } finally { return 1; } } } 三、下面语句的执行结果是: public class FinallyTest { public static void main(String[] args) { System.out.println("getValue()返回值为:" + getValue()); } public static int getValue() { int i = 1; try { return i; } finally { i++; } } } 首先,第一个问题,答案是否定的。在try里面执行了System.exit(0);操作finally就不会执行,另外死机、断电都会导致finally不会执行。 对于后面两个问题,我们先看一下摘自《THE Java™ Programming Language, Fourth Edition》By Ken Arnold, James Gosling, David Holmes中的几段话: a finally clause is always entered with a reason. That reason may be that the try code finished normally, that it executed a control flow statement such as return, or that an exception was thrown in code executed in the TRy block. The reason is remembered when the finally clause exits by falling out the bottom. However, if the finally block creates its own reason to leave by executing a control flow statement (such as break or return) or by throwing an exception, that reason supersedes the original one, and the original reason is forgotten. For example, consider the following code: try { // ... do something ... return 1; } finally { return 2; } When the TRy block executes its return, the finally block is entered with the "reason" of returning the value 1. However, inside the finally block the value 2 is returned, so the initial intention is forgotten. In fact, if any of the other code in the try block had thrown an exception, the result would still be to return 2. If thefinally block did not return a value but simply fell out the bottom, the "return the value 1" reason would be remembered and carried out. 从红色和蓝色字体标注的解释可以看出,当finally中有return语句的时候,try中的return会被抛弃;当finally中没有return语句时,try中return的值会被保存且被返回。 所以,第二个问题的答案是:getValue()返回值为:1 第三个问题的答案是:getValue()返回值为:1
发表评论
-
javaweb 读取 classes 下的文件
2016-05-20 11:26 920http://www.cnblogs.com/hxling/a ... -
itext pdf
2015-08-19 23:17 614itext pdf 简单版 <script src= ... -
正则解析分红
2015-05-23 15:51 680// 表达式对象 Pattern p = Patte ... -
maven中指定main方法并且导入关联jar包,拷贝依赖包
2015-03-05 10:21 701<build> <plugins& ... -
nashorn shell
2015-02-05 18:21 681java8 doc http://docs.oracle.co ... -
java jvm 多线程 并发相关
2015-01-28 09:36 588Doug Lea并发编程文章全部译文 http://ifeve ... -
char <-->unicode
2015-01-06 15:20 649http://daoshud1.iteye.com/blog/ ... -
java gc
2014-12-10 14:10 0Java垃圾回收精粹 — Part1Java垃圾回收精粹 ... -
分页test
2014-12-01 09:20 592/** * * @author lan * ... -
java 正则模板
2014-10-08 10:44 518import java.util.HashMap; im ... -
java mail 带图片附件
2014-09-24 11:54 476package t; import java.uti ... -
“||”.split(“\\|”).length return 0 and 3
2014-08-26 10:00 621“||”.split(“\\|”) [] “| ... -
JRebel config
2014-08-03 17:43 2313http://zeroturnaround.com/sof ... -
java反编译
2014-07-25 18:01 633http://jd.benow.ca/ -
mvn tomcat7:run config
2014-07-24 16:37 810<project xmlns="http: ... -
Eclipse 编写应用程序设置代理
2014-07-17 10:18 875java -Dhttp.proxyHost=proxyho ... -
happens-before
2014-06-03 12:16 746内存一致性属性 Java Language Speci ... -
java.util.concurrent 的结构
2014-06-03 00:14 612... -
深入理解Java:注解(Annotation)自定义注解入门
2014-04-21 14:27 736要深入学习注解,我们就必须能定义自己的注解,并使用注解,在 ... -
test
2014-03-16 13:35 0http://hi.baidu.com/tag/data/fe ...
相关推荐
Java 中 finally 语句块与 return 的执行关系 Java 中的 finally 语句块是用于保证无论出现什么情况,一定要执行的代码块。在 try-catch-finally 结构中,finally 语句块的执行顺序是非常重要的。下面我们来详细...
Java finally语句到底是在return之前还是之后执行?Java finally执行深度剖析,具体看这篇博文:http://blog.csdn.net/lanxuezaipiao/article/details/16922895,这是里面相关的源码,欢迎大家下载使用。
在Java中,finally语句可以与return语句结合使用,但是它们的执行顺序是非常重要的。finally语句是在try的return语句执行之后,return返回之前执行的。这意味着,如果在try块中执行了return语句,finally语句将在...
在Java编程语言中,`finally`语句块是一个非常关键的结构,用于确保特定代码无论在任何情况下(包括异常发生或正常返回)都会被执行。这个特性使得`finally`成为处理资源清理,如关闭文件流、数据库连接等操作的理想...
try、catch、finally、return 执行顺序是 Java 编程语言中的一种 exception 处理机制,用于处理程序中的异常情况。下面我们来详细讲解 try、catch、finally、return 执行顺序的规则和特点。 首先,我们需要了解 try...
#### return与finally的关系 当方法包含`return`语句并且还使用了`finally`块时,需要注意以下行为: 1. **正常执行**:如果没有异常发生,程序会先执行`finally`块中的代码,然后返回结果。 2. **异常发生**:...
Java语言finally语句详解,finally到底是在return之前还是之后执行.zip
17. **Java finally与return执行顺序**:明确finally块和return语句的执行顺序。 **Android相关知识点:** 1. **Android基础**:Activity、Service、BroadcastReceiver、ContentProvider和Fragment的全方位解析。 ...
在Java编程语言中,`return` 语句和 `finally` 语句的相互作用是一个重要的概念,尤其是在处理异常处理时。`finally` 语句块通常用于确保某些代码无论是否发生异常都会被执行,而 `return` 语句用于提前结束方法并...
Java 中 finally 语句的执行顺序探讨 在 Java 中,finally 语句的执行顺序是一个常见的探讨话题。很多人都认为 finally 语句一定会被执行,但这是不正确的。在某些情况下,finally 语句可能不会被执行,例如在 try ...
在涉及finally和return语句时,Java有一些特定的行为规则。 首先,`finally`块中的代码总是会被执行,除非程序在执行到`finally`块之前就退出了JVM(例如通过`System.exit()`)。即使在`try`块或`catch`块中有`...
在Java的异常机制中,如果finally中含有return语句,则try和catch中的return语句将会被JVM忽视
- **Java finally与return执行顺序**:finally块如何影响方法返回值。 - **Java 8新特性**:如Lambda表达式、Stream API等,这些都是提高开发效率的重要特性。 #### 二、Java并发 - **Java创建线程的三种方式**:...
### Java软件开发实战:Java基础与案例开发详解之10-5 finally关键字 #### finally关键字的理解及应用场景 在深入探讨`finally`关键字之前,我们先回顾一下Java异常处理的基础概念。异常处理是Java中用于处理程序...
当Java执行到可能抛出异常的代码行时,如果确实发生了异常,那么控制权就会立即转移到与之关联的`catch`块。 `catch`块是用来捕获和处理异常的地方。每个`catch`块都对应一个特定的异常类或者异常类的父类,这样就...
"Java中try finally return语句的执行顺序浅析" 关于Java中try finally return语句的执行顺序浅析是Java语言中一个重要的知识点,今天我们来探讨一下try finally return语句的执行顺序。 首先,需要了解的是...
`finally`的执行规则是,只要`try`或`catch`块被执行,`finally`块就会在它们之后运行,即使在`try`或`catch`中有`return`语句或者抛出未捕获的异常,`finally`块依然会被执行。唯一能阻止`finally`执行的情况是程序...
第一:return语句并不是函数的终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂存在栈里面,等待finally执行后再返回) 第二:finally里面不建议放return语句,根据需要,return语句...
与代码二类似,`finally`块中的`return 0;`会将0放入返回值区域,所以方法返回0,而不考虑`try`块中的`return`。 总结一下,`try-catch-finally`结构中的`return`语句遵循以下规则: 1. 如果`finally`块没有`return...
Condition 3: try中有异常,try-catch-finally里都没有return ,finally 之后有个returntry中有异常以后,根据