`
goldenrod_z4
  • 浏览: 44287 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Java catch中的return与finally的执行先后顺序

阅读更多
如题。

我写了一个demo,代码如下:
public class Test {

public static  int method1() {
int b =0;
try{
throw new Exception();
}catch (Exception e) {
System.out.println("in catch b="+b);
return b=-1;
}finally{
System.out.println("in finally:b="+b);
b = 1;
}

}

public static void main(String[] args) {
System.out.println("result b ="+method1());
}
}

结果:
in catch b=0
in finally:b=-1
result b =-1

足以证明,先执行catch中的return,然后再执行finally!
分享到:
评论

相关推荐

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

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

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

    Java 中 finally 语句块与 return 的执行关系 Java 中的 finally 语句块是用于保证无论出现什么情况,一定要执行的代码块。在 try-catch-finally 结构中,finally 语句块的执行顺序是非常重要的。下面我们来详细...

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

    在这个例子中,无论`try`或`catch`块中的`return`语句如何,`finally`块都会执行,确保文件流被关闭。 总的来说,Java的`finally`语句块确保了关键代码的执行,尤其是在处理异常或资源清理的情况下。理解`finally`...

    try-catch-finally执行顺序验证

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

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

    关于Java中try finally return语句的执行顺序浅析是Java语言中一个重要的知识点,今天我们来探讨一下try finally return语句的执行顺序。 首先,需要了解的是finally语句块是否一定会执行的问题。很多人第一反应是...

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

    在Java中,finally语句可以与return语句结合使用,但是它们的执行顺序是非常重要的。finally语句是在try的return语句执行之后,return返回之前执行的。这意味着,如果在try块中执行了return语句,finally语句将在...

    浅谈Java中return和finally的问题

    2. **`return` 与 `finally` 的执行顺序**:在 `try` 块中遇到 `return` 时,会先执行 `finally` 语句块,然后再返回值。这是因为 `finally` 中的代码优先级高于 `return`,即使 `return` 已经被触发,`finally` ...

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

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

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

    Java 中 finally 语句的执行顺序探讨 在 Java 中,finally 语句的执行顺序是一个常见的探讨话题。很多人都认为 finally 语句一定会被执行,但这是不正确的。在某些情况下,finally 语句可能不会被执行,例如在 try ...

    java面试题之try中含return语句时代码的执行顺序详解

    总结一下,`try-catch-finally`块中的`return`语句执行顺序如下: 1. `try`块中的代码被执行。 2. 如果遇到`return`语句,会创建一个临时变量,保存`return`语句要返回的值。 3. `finally`块被执行。 4. `finally`...

    Java异常发生时程序的执行顺序

    4. **return** 与 `try-catch-finally` 结合:如果 `try` 或 `catch` 里有 `return` 语句,`finally` 仍然会执行,但是 `return` 之后的代码不会被执行。在示例 `T2` 中,`finally` 里的 `return` 会覆盖掉 `try` 中...

    java finally块执行时机全面分析

    例如,如果`try`或`catch`块中有一个`return`语句,`finally`块将在`return`之前执行,但不会阻止`return`语句的执行。 关于字节码层面的解释,根据《深入Java虚拟机》一书的描述,`finally`块的实现是通过`jsr`...

    java面试精华7

    - 当`try-catch-finally`块中包含`return`语句时,`finally`块总是会在`return`之前执行。但是,`finally`块的`return`语句会中断`try`块的`return`,使得控制流跳过`try`块的`return`直接返回`finally`的值。 ...

    Java异常处理-异常处理的方式1

    - 题1:`finally`块中的return语句会覆盖try-catch块中的return吗? - 题2:如果`finally`块中有throw语句,会怎样? - 题3:如何在`finally`块中避免覆盖已设置的返回值? 总的来说,Java异常处理机制使得代码更加...

    JAVA经典试题集合

    当try块中的代码遇到return语句时,会先执行finally块,然后返回值。在给定的题目中,由于finally块会打印"Finally",因此程序运行后会输出"Finally",所以正确答案是B。如果try块中包含System.exit(1),程序会立即...

    Java选择题.pdf

    8. try-catch-finally执行顺序:当try块中的return语句执行时,finally块的代码会在return之前执行。因此,选项C正确。 9. 异常处理和返回值:在try-catch-finally结构中,finally块的return语句总是最后执行,所以...

    java经典基础题(难得的题目)

    在Java中,如果`try`块中存在`return`语句,`finally`块会先执行,然后才执行`return`。因此,程序会打印"Finally",然后返回。选项B是正确答案。即使`return`在`try`块中,`finally`块的代码仍会执行,除非使用`...

    JAVA中关于异常的解释与处理

    如果`try`或`catch`中有`return`语句,`finally`块也会在返回前执行。 3. `catch`多分支处理: 多个`catch`可以处理不同类型的异常,顺序很重要,因为子类异常应排在父类异常前面。如果子类异常被捕捉,父类异常就...

    java流程控制语句

    跳转语句用于在代码中进行非顺序执行流控制,Java提供了break、continue、label、return等跳转语句。其中,break用于立即退出最内层的循环或switch语句,continue用于跳过当前循环的剩余部分并开始下一次循环迭代,...

Global site tag (gtag.js) - Google Analytics