`
liubey
  • 浏览: 107217 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

try catch reutrn finally之间的执行顺序

    博客分类:
  • Java
阅读更多

什么都不说,直接上来看实例

 

看下面的程序:

public class JVMTest {

public static void main(String[] args){
System.out.println("aa:" + aa());
}
public static int aa(){
int a = 1;
int b = 10;
try{
System.out.println("abc");
return a;
}finally{
a = 2;
System.out.println("a: "+ a);
}
}
}

运行结果为:

abc
a: 2
aa:1

由此可知:在try语句中,在执行return语句时,要返回的结果已经准备好了,就在此时,程序转到finally执行了。

在转去之前,try中先把要返回的结果存放到不同于a的局部变量中去,执行完finally之后,在从中取出返回结果,

因此,即使finally中对变量a进行了改变,但是不会影响返回结果。

但是,如果在finally子句中最后添加上return a会怎样呢?

执行结果如下:

Compiling 1 source file to E:\sun\InsideJVM\build\classes
E:\sun\InsideJVM\src\JVMTest.java:37: warning: finally clause cannot complete normally
}
1 warning
compile-single:
run-single:
abc
a: 2
aa:2


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liubey_zff/archive/2010/02/24/5323081.aspx

分享到:
评论

相关推荐

    Vuejs中的watch实例详解(监听者)

    最近刚刚追完庆余年,心思还总是在剧情里,然后就觉得在vuejs里watch就是监察院,一个不折不扣的特务... reutrn { candy: } }, //传说中的监察院start watch:{ candy:{ handler(newVal,oldVal){ }, immediate:

    2023年面向对象程序设计试题样例.doc

    面向对象程序设计是一种重要的编程范式,它基于“对象”的概念,强调数据和操作...总之,这份试题旨在测试考生对面向对象程序设计的理解,包括基本概念、类的定义、成员函数的使用、动态内存管理和对象之间的关系等。

    Python 函数返回值的示例代码

    如果一个函数没有 reutrn 语句,其实它有一个隐含的 return 语句,返回值是 None,类型也是 ‘NoneType’。 return 语句的作用:结束函数调用、返回值 0x 01 指定返回值与隐含返回值 函数体中 return 语句有指

    APUE笔记之:进程环境详解

    在main中调用exit(1)和reutrn 1是等价的。内核启动一个进程的唯一的方法是调用exec,用户程序终止进程的唯一方法是显示或者隐式的调用_exit或者EXIT。每个进程都会有一个进程表。进程表是一个全局的指针:environ...

    股票买卖最佳时机leetcode-trading_optimization:使用OperationResearchSolver优化交易流程

    股票买卖最佳时机leetcode 交易优化 Operation Research Solver GLPK 以预测的股票价格为输入来优化交易过程。 更新的文件: ...reutrn: 0.000 Return in $ = 535.35$, percnetage = 2.68 Variance = 0.3

    不一样的函数返回值~yield关键字*核心讲解(内含debug的git图展示)

    文章目录函数返回值涉及的关键字return关键字yield关键字yield的实现展示(代码+gif)代码实例Debug效果yield返回的数据类型——数据知多少...直接返回该数据类型的对象(比如reutrn 0 # 意味着返回整型对象(也可以返回

    react-showcase:轻松创建自己的React组件展示站点

    React展示 轻松创建自己的React组件展示站点。 安装 $ npm install --save react-showcase ... reutrn } ) ; function App ( ) { return < div> { showcases } < / div > } ReactDOM . render ( < App>

    .vim:НастройкиредактораVIM

    Далееоткройтерминаливвведивнемстроку,которуюнужноскопироватьниже: cd ~ Нажмиклавишу Reutrn ,клавишаэтосизо...

    java培训教程教学课件

    reutrn x+y; } public static int add(int x,int y,int z) { return x+y+z; } public static double add(double x,double y) { return x+y; } } 《Java就业培训教程》P47源码 public class TestAnd { ...

Global site tag (gtag.js) - Google Analytics