try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally{}里的代码会不会被执行,什么时候被执行,在 return 前还是后?
时间: 2024-04-16 11:25:29 浏览: 65
关于Java中try finally return语句的执行顺序浅析
5星 · 资源好评率100%
在一个 try-catch-finally 块中,无论是否有 return 语句,finally{}里的代码都会被执行。finally 块中的代码在以下情况下会被执行:
1. 当 try 块中的代码正常执行完毕时,即没有抛出异常并且没有在 try 块中使用 return 语句,finally{}中的代码会在 try 块执行完后被执行。
2. 当 try 块中的代码抛出异常,并且该异常被 catch 块捕获处理时,finally{}中的代码会在 catch 块执行完后被执行。
3. 当 try 块中的代码抛出异常,但没有找到匹配的 catch 块来处理该异常时,finally{}中的代码会在异常向上抛出前被执行。
无论是在 return 语句之前还是之后,finally{}中的代码都会被执行。如果在 finally{}中有 return 语句,它会覆盖之前的返回值,将新的返回值返回。但是,建议不要在 finally{}块中使用 return 语句,以免引发意外结果或混淆代码逻辑。
阅读全文