finally和return谁先执行
时间: 2023-04-23 16:02:02 浏览: 66
在大多数编程语言中,无论是Python、Java、C++还是其他语言,finally块和return语句都是根据特定的规则执行的。
首先,如果在try块中有return语句,那么程序会在执行return语句之前执行finally块。这意味着finally块会在函数返回之前被执行,无论try块是否发生异常。
如果在try块中没有return语句,那么程序会在执行完finally块后执行return语句。这意味着finally块会在函数返回之前被执行,并且如果finally块中抛出异常,则该异常会替换掉之前的异常,从而成为函数的最终返回值。
因此,无论是finally块还是return语句,它们的执行顺序都是在特定的规则下执行的,而不是由它们自己的位置决定。
相关问题
try-catch-finally-return执行顺序
try-catch-finally-return执行顺序如下:
1.程序先执行try块中的代码。
2.如果try块中的代码出现异常,则跳转到catch块中执行相应的代码。
3.如果catch块中有return语句,则执行return之前(包括return语句中的表达式运算)的代码,然后执行finally块中的全部代码,最后执行catch块中的return语句。
4.如果try块中的代码没有出现异常,则执行finally块中的全部代码,最后执行try块中的return语句。
5.如果finally块中有return语句,则直接执行finally块中的return语句,不再执行try块中的return语句。
以下是两个try-catch-finally-return执行顺序的例子:
1.情况3:
```java
try {
//执行try块中的代码
} catch (Exception e) {
//执行catch块中的代码
return; //执行catch块中的return语句之前的代码
} finally {
//执行finally块中的全部代码
}
return; //执行catch块中的return语句
```
2.情况2:
```java
try {
return; //执行try块中的return语句
} catch (Exception e) {
//执行catch块中的代码
} finally {
//执行finally块中的全部代码
}
return; //执行try块中的return语句
```
try catch finally return执行顺序
try catch finally return 执行顺序是先执行 try 代码块中的语句,如果有异常则跳到 catch 代码块中处理异常,finally 代码块最后执行,最后执行 return 语句返回结果。