关于Java中return和finally谁先执行.

例子一:

 1 public class A {
 2     public static void main(String[] args) {
 3         System.out.print(tt());
 4     }
 5
 6     public static int tt() {
 7         int b = 23;
 8         try {
 9             System.out.println("yes");
10             return b += 88;
11         } catch (Exception e) {
12             System.out.println("error:" + e);
13         } finally {
14             if (b > 25) {
15                 System.out.println("b>25:" + b);
16             }
17             System.out.println("finally");
18         }
19         return b;
20     }
21 }

输出:

yes
b>25:111
finally
111

也就是说明finally语句在return语句执行完了以后才执行的.

更改部分代码:

^^^^^^^^^^

时间: 2024-10-12 03:47:37

关于Java中return和finally谁先执行.的相关文章

经典的java中return和finally问题!

经典的java中return和finally问题! 标签: 杂谈 分类: java学习 前一段时间 参加公司的笔试问了这个问题,回来一查才知道当时自己做错了,百思不得其解,上网查到下面的程序,但是运行后发现了错误,我修改后放在了我的blog 上面,希望和大家分享. 代码如下: public class Test { public static void main(String[] args) { System.out.print(tt()); } public static int tt() {

java中return与finally的执行顺序

网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的: (1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到. (2)在try块中有System.exit(0);这样的语句,System.exit(0);

java中return的作用

return的常用作用有以下两种一种是返回参数所用的关键字,假如一个有返回值的方法执行完了之后需要返回一个参数,示例:public string functionTest(){ String a = "abc"; return a;}那么这个方法被调用之后就会返回一个值为abc的字符串,string result = functionTest(); 第二种用法是,代码执行到此处终止.比如当代码执行到某个地方会出现几种结果,然后其中一种结果就不能执行后续代码,这时候在那里加上一个retu

java中return语句的用法总结

return算是各大语言的常客,基本上都有return语句,那么在JAVA中,return有什么特殊的地方吗,下面我们来分析下 1.return语句的作用:a.返回一个值,这个值可以是任意类型.b.使程序返回到操作系统(即终止程序) 2.java中对于一个函数,不论有没有返回值类型,都可以带有return 语句. 但是区别在于,return 语句是否可以返回一个值(这取决与该函数的返回值类型). a.如果函数有返回值类型(即返回值类型不为void ),则必须带有返回相应类型值的return 语句

Java中return返回结果的优先级

在Java开发时,异常处理是非常普遍的.先看这样一道关于异常处理的代码 public static int getNumer() { int a = 1; try { return a; } catch (Exception e) { a = -1; } finally { a = 30; System.out.println(a); } return a; } 当执行System.out.println(getNumer())返回的结果应该是多少?A 30 30B 30 1C 1 30答案是B

java中return在Try-Catch中的执行顺序

我们知道return会结束此方法并返回指定值.以及在Try-catch-finally中无论try代码块中有没有异常finally中的代码时都会被执行的.但是如果return包含在try-catch-finally中的try或catch块中会怎样呢? 我们再做个试验: 1 static int txt(){ 2 try { 3 @SuppressWarnings("unused") 4 int a=5/0; 5 7 } catch (Exception e) { 8 System.ou

Java中 return 和finally

1. 最简单的情形 public void main(){ String s = test(); System.out.println("s=[" + s + "]"); } public String test(){ String s = ""; try{ System.out.println("In try"); s += "try," ; }catch(Exception ex){ System.ou

java中try{}catch{}和finally{}的执行顺序问题

 今天我给大家讲解一下java的的错误和异常处理机制以及相关异常的执行顺序问题.如有不足的地方,欢迎批评指正~ 1.首相简单介绍一下java中的错误(Error)和异常(Exception) 错误和异常的介绍: 在java.lang软件包中有一个java.lang.Throwable类,这个类是java中所有错误和异常的超类. 在java中错误和异常的继承主要有两个: 分别为Error和Exception 这两个. Error:         是java中所有错误类的父类,就是jvm出现错误,

Java中Return和Finally执行顺序的实现

下面这段代码的执行结果是怎样的呢? [java] view plaincopyprint? publc int test(){ int x; try{ x = 1; return x; }catch(Exception e){ x = 2; return x; }finally{ x = 3; } } 相信对Java比较熟悉的朋友马上会说出正确答案:正常返回1,异常返回2.我第一次看到这段代码时,对于finally里面的x=3产生了疑惑,不确定最后返回的x是否变成了3,直到从<深入理解Java虚