try-finally中的返回值

原创 2012年03月21日 11:16:49
class B
{
    public int i=0;

}


public class MyTestCase {


    @Test
    public void hello() {
        int a = getI();
        System.out.println("a = " + a);
        
         B b1 = getB1();
        System.out.println("b1.i = " + b1.i);
        
        B b2 = getB2();
        System.out.println("b2.i = " + b2.i);
    }


    private int getI() {
        int a = 0;
        try {
            a = 1; 
            return a;
        } finally { 
            a = 2; 
        }
    }
    private B getB1() {
        B b = new B();
        try {
            b.i = 1; 
            return b;
        } finally { 
            b.i = 2;  
        }
    }
    
    private B getB2() {
        B b = new B();
        try {
            b.i = 1; 
            return b;
        } finally {  
            b = new B();
        }
    }
}


输出:

a = 1
b1.i = 2
b2.i = 1

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

从JVM指令层面看try-catch-finally返回值问题

貌似很多人对下面的方法的返回值都比较迷糊: Java代码   package cc.lixiaohui.demo;          public ...

TRY--CATCH--FINALLY中RETURN返回值执行的顺序(区别)

遇到有关try catch finally 中有return 的问题找的大神博客

try-catch-finally-return返回值问题

今天在看《深入java虚拟机》第六章时书中一段代码引起了我对try-catch-finally-return关系的兴趣和思考,闲话不多说直接进入主题,请看下面代码:    代码清单1:    pub...

通过IL理解C# try catch finally中真正的return 返回值

通过分析IL流程和画IL流程图 来分析try finally 中真正的return的返回值

【Java】try、catch、finally的执行顺序与返回值问题

笔试很多时候都会考try、catch、finally的执行顺序,网上也有很多文章记录他们的执行顺序,但是都是根据代码执行结果推规律,有种死记硬背的感觉。从字节码反编译后的代码可以查看try、catch...

关于JAVA的try catch finally的return返回值问题

转载自:《http://blog.csdn.net/exsuns/article/details/5217669》 [java] view plaincopy class Test...

Java提高:不要在finally块中处理返回值

一、分析 在finally中处理return返回值,代码上看上去很完美,都符合逻辑,但是执行起来就会产生逻辑错误,最重要的一点是finally是用来做异常处理的收尾处理的,一旦加上 return语句,...

finally里面的return返回值问题

示例验证过程:import java.util.Scanner; public class TestException{ //创建类的实例 static Scanner input ...

字节码分析finally块对return返回值的影响

通过字节码分析在finally块中修改返回值后,返回的结果

java 中try catch finally 的具体执行顺序返回结果+代码测试

执行顺序的重点就在finally中,具体如下: (1)、try:它里面放置可能引发异常的代码 (2)、catch:后面对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块,可以有多...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)