`

finally 居然在return后面也是会执行的

    博客分类:
  • Java
 
阅读更多

finally 居然在return后面也是会执行的。

public class Tst {
	public static void main(String[] args) {
		returnInt1();
	}
	
	public static int returnInt1() {
		try {
			return 0;
		} finally {
			System.out.println("finally test for return statment!");
		}
	}
}

 

 

结果:

 

 

写道
finally test for return statment!

 

分享到:
评论

相关推荐

    python函数中return后的语句一定不会执行吗?

    但有一种特殊情况,即`return`语句在`try`语句块内,此时,`finally`语句块中的代码仍然会被执行,即使`return`已经执行。下面的代码展示了这一情况: ```python def fun(): print(98) return 'ok' # 函数终止,...

    Java异常处理中同时有finally和return语句的执行问题

    即使在`try`块或`catch`块中有`return`语句,`finally`块内的代码也会在返回之前被执行。这是为了确保资源的清理或其他重要的操作能够完成。 第一种情况中,`try`块包含了`return`语句,`finally`块不包含`return`...

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

    在这种情况下,`return`后面不应该有任何表达式,只允许`return;`的形式。 现在,我们来看看`try-catch-finally`结构中的`return`语句。`try`块通常包含可能会抛出异常的代码,`catch`块捕获并处理这些异常,而`...

    ocjp考试题(卷)库.doc

    `try...catch...finally`块中,如果在`try`块中遇到`return`语句,`finally`块会先执行,然后才会执行`return`。所以,代码会打印"Finally",然后返回,不会执行`finally`块后面的语句。因此,正确答案是B。 4. ...

    JAVA经典试题集合

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

    python的异常处理.rar

    即使`try/except`块中有`return`语句,`finally`块中的代码也会被执行。 ```python try: # 可能会引发异常的代码 except Exception as e: print(f"发生错误:{e}") finally: # 清理代码,比如关闭文件或网络连接...

    SCJP模拟题104道!.doc

    因此,即使在`try`块中直接返回,`finally`块的代码也会被执行,所以输出是"Finally"。 5. **异常处理与程序流程**:在`Test`类的`foo`方法中,如果`i`等于1,会抛出异常并进入`catch`块,执行`output+="2"`和`...

    python练习题Question56.txt

    5. finally块:在try/except结构中,finally块是可选的,但当需要执行一些无论是否发生异常都需要执行的清理操作时,finally块非常有用。无论是否捕获到异常,finally块中的代码总是会被执行。 根据上述内容,我们...

    面向对象程序的设计2014复习试题.doc

    即使在`try`或`catch`块中有`return`语句或异常被抛出,`finally`块中的代码也会执行。 10. **异常处理策略**:当方法遇到它无法处理的异常时,应该使用`throws`关键字声明该异常,将异常的处理责任交给调用者。...

    java基础关于异常处理方式

    即使在catch块中有一个return语句,finally块的代码也会被执行。 4. **throw关键字**: `throw`关键字用于手动抛出一个异常。开发人员可以根据需要创建自定义异常类,并在适当的时候使用throw关键字抛出这些异常。...

    SCJP_经典题笔记

    在题目中的`foo`方法,如果`i==1`,会抛出异常并执行catch块,然后跳过try和catch后面的代码直接执行finally块。如果`i!=1`,则不会抛出异常,正常执行try和finally块。 5. **静态变量**:静态变量是属于类的,而...

    java笔试题

    3. `finally`块会在`return`语句执行之后、实际返回之前执行。这意味着`return`语句的值会被暂时保存,在`finally`块执行完毕后才会真正返回。这保证了无论`finally`块中发生了什么,返回的值不会受到影响。 4. 如果...

    Java工程师笔试题11-选择题.pdf

    当try块中的return语句执行时,finally块也会执行。因此,输出的是finally块中的内容,即数字123。 这些题目覆盖了Java编程中的核心概念,对于准备Java工程师面试或笔试的人员来说,理解和掌握这些知识点至关重要。...

    JAVA中异常处理的WORD文档

    // 如果在catch块中没有return,这里也可以添加return语句 return 0; // 或者其他默认值 } ``` 8. `RuntimeException`和`IOException` `RuntimeException`及其子类是未检查异常,它们代表程序逻辑错误,如除以零...

    java笔试试题 涉及很多方面

    4. `finally`块的执行条件:理解在哪些情况下`finally`块一定会执行,即使有`return`语句。 5. 多重`catch`:如何处理多种可能的异常类型,以及如何使用`catch-all`来捕获未知异常。 6. checked异常和unchecked异常...

    375.373.JAVA基础教程_异常处理-处理异常:try-catch方式(375).rar

    即使在try或catch块中有return语句,finally块中的代码也会被执行。 4. **throw**:程序员可以使用throw关键字手动抛出一个异常,这在检测到错误条件时非常有用。 5. **throws**:如果方法可能抛出异常但不处理,...

    java流程控制语句

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

    Java中的异常处理机制.pdf

    即使在finally块中有return或throw语句,也会在finally块执行完后再返回或抛出,除非finally块中的语句直接终止了程序。 4. **throw关键字**:throw用于主动抛出一个异常。可以创建一个新的异常对象并用throw关键字...

Global site tag (gtag.js) - Google Analytics