`
javaG
  • 浏览: 554575 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

try finally return

    博客分类:
  • java
 
阅读更多
    class Entry
    {

        public Entry(String value){
            this.value = value;
            System.out.println("[Entry]setValue:"+value);
        }
        private String value = "";
        public String getValue()
        {
            System.out.println("[Entry]getValue"+value);
            return value;
        }
        public Entry setValue(String value)
        {
            this.value = value;
            System.out.println("[Entry]setValue:"+value);
            return this;
        }
    }  
    private static Entry testTryFinally()
    {
        Entry e = new Entry("0");
        try{
            return e.setValue("2");
        }finally{
            e.setValue("1");
        }
        
    }    
    public static void main(String[] args) throws IOException
    {

        testTryFinally();
    }


输出结果:

[Entry]setValue:0
[Entry]setValue:2
[Entry]setValue:1

 

结论:

先执行Entry e = new Entry("0");

再执行e.setValue("2");然后把这一步的值赋给return,这个时候进入finally

再执行e.setValue("1");

在执行finally之前e.setValue("2");就已经执行了,然后把结果暂存在return里面.

执行完finally后才返回return.

 

r.lock();
try{
      return Entry.setValue("X");
}finally{
      r.unlock();
}

 这段代码是线程安全的,因为先执行了Entry.setValue("X");才解锁的.

分享到:
评论

相关推荐

    关于Java中try finally return语句的执行顺序浅析

    "Java中try finally return语句的执行顺序浅析" 关于Java中try finally return语句的执行顺序浅析是Java语言中一个重要的知识点,今天我们来探讨一下try finally return语句的执行顺序。 首先,需要了解的是...

    try、catch、finally、return 执行顺序.doc

    try、catch、finally、return 执行顺序详细讲解 try、catch、finally、return 执行顺序是 Java 编程语言中的一种 exception 处理机制,用于处理程序中的异常情况。下面我们来详细讲解 try、catch、finally、return ...

    try-finally-return-in-finally.rar_return

    标题“try-finally-return-in-finally.rar_return”暗示了我们正在讨论`return`语句如何与`finally`块内的`return`交互。在JavaScript中,如果`try`块或`finally`块包含`return`语句,程序的行为可能会变得复杂。 ...

    使用try-catch-finally处理异常

    即使在`try`或`catch`块中有return语句,`finally`块的代码也会被执行。 5. **多层嵌套** 你还可以在`try-catch-finally`结构内部嵌套另一个`try-catch-finally`结构,以处理更复杂的情况。这种方式使得异常处理...

    try-catch-finally-return-in-finally.rar_return

    标题 "try-catch-finally-return-in-finally.rar_return" 提到了 `try-catch-finally` 结构与 `return` 语句的交互,这涉及到程序执行流程的关键方面。 `try` 块是用来包含可能会抛出异常的代码。如果在 `try` 块中...

    try-catch-finally捕获异常

    try-catch-finally捕获异常 try-catch-finally语句是Java语言中一种常用的异常处理机制,当程序在执行过程中出现异常时,可以使用try-catch-finally语句来捕获和处理异常。下面将详细介绍try-catch-finally语句的...

    java 中finally语句块与return的执行关系

    在 Java 规范中规定,在 try-catch-finally 中,如果 try-finally 或者 catch-finally 中都有 return,则两个 return 语句都执行,并且最终返回到调用者那里的是 finally 中 return 的值;而如果 finally 中没有 ...

    try~catch~finally中关于return的问题

    在Java的异常机制中,如果finally中含有return语句,则try和catch中的return语句将会被JVM忽视

    Jungle68#-#[Java] try catch finally,try里有return,finally还执行么?1

    Condition 3: try中有异常,try-catch-finally里都没有return ,finally 之后有个returntry中有异常以后,根据

    Java finally语句到底是在return之前还是之后执行?

    1. 如果`try`块中的代码没有抛出异常,那么`finally`块会在`try`块结束时执行,之后控制权将传递给相应的`return`语句。 2. 如果`try`块中的代码抛出一个未捕获的异常,`finally`块仍然会执行,然后再将异常传递给...

    C++ 中try finally关键字详解

    即使在 `try` 块中有 `return` 语句或者 `goto` 语句导致程序流程提前离开,`finally` 块的代码也会被执行。这是 `finally` 关键字的核心特性,确保资源清理逻辑总是能够被执行,比如关闭文件、释放内存等。 以下是...

    try_catch_finally异常处理java

    即使`try`或`catch`块中存在`return`语句,`finally`块的代码也会被执行。这确保了程序的整洁和资源的有效管理。 在Java中,`try-catch-finally`结构可以单独使用,也可以嵌套使用。嵌套的`try-catch-finally`允许...

    Java中finally和return的关系实例解析

    3. finally语句可以与return语句结合使用,但是finally语句的返回值将覆盖try/catch中的return语句。 4. 在finally中写return语句会有警告,因为它会阻止函数抛出异常,而改为正常返回。 Java中finally和return的...

    关于Java中的try-catch-finally语句和return

     第二:finally里面不建议放return语句,根据需要,return语句可以放在try和catch里面和函数的后。可行的做法有四:  1、return语句只在函数后出现一次。  2、return语句仅在try和catch里面都出现。  3、...

    try-catch-finally执行顺序验证

    try-catch-finally执行顺序验证(左边是.java文件,右边是.class文件) 提示: try、catch块内的return操作编译后会变成把return的值保存到变量var的操作。 总结: try、catch块内的return操作编译后会变成把return的值...

    谈谈Java中try-catch-finally中的return语句

    2. 如果`finally`块有`return`语句,无论`try`块是否包含`return`,`finally`块的`return`语句都将决定最终的返回值,因为`finally`总是被执行。 理解这一点对于编写健壮、可靠的Java代码至关重要,特别是涉及资源...

    try catch finally的执行顺序深入分析

    在这个过程中,函数会将`try`或`catch`块中的`return`语句返回的值暂存起来,然后执行`finally`块。 如果在`finally`块中也有`return`语句,那么这个`return`值会覆盖之前暂存的值。也就是说,最终返回给调用者的值...

    浅谈Java finally语句到底是在return之前还是之后执行(必看篇)

    从结果可以看到,finally 块中的 return 语句会覆盖 try 块中的 return 语句,try 块中的 return 语句就不能返回了。 finally 语句是在 try 的 return 语句执行之后,return 返回之前执行的。 finally 块中的 ...

    Java中finally块执行与return关系深度剖析

    Java finally语句到底是在return之前还是之后执行?Java finally执行深度剖析,具体看这篇博文:http://blog.csdn.net/lanxuezaipiao/article/details/16922895,这是里面相关的源码,欢迎大家下载使用。

    try finally 妙用,防止内存泄漏

    本文将探讨如何使用`try...finally`语句来帮助预防JavaScript中的内存泄漏。 `try...finally`是一种错误处理结构,它允许开发者在可能抛出异常的代码块中执行清理操作。当`try`块中的代码抛出错误时,`catch`块会被...

Global site tag (gtag.js) - Google Analytics