try+catch+finally执行顺序
时间: 2023-11-09 14:08:23 浏览: 75
try-catch-finally语句块的执行顺序如下:
1. 首先执行try语句块中的代码;
2. 如果try语句块中的代码抛出异常,则立即跳转到catch语句块中执行相应的代码;
3. 如果try语句块中的代码没有抛出异常,则执行finally语句块中的代码;
4. 如果catch语句块中的代码执行完毕,则执行finally语句块中的代码;
5. 如果finally语句块中的代码执行完毕,则返回到try-catch-finally语句块之外的代码继续执行。
需要注意的是,如果在try语句块中抛出异常后,catch语句块中的代码执行完毕后,还会执行finally语句块中的代码,然后再抛出异常。如果在finally语句块中抛出异常,则会覆盖之前的异常。
相关问题
try-catch-finally执行顺序
回答: 在try-catch-finally结构中,无论try代码块是否发生异常,finally代码块都会被执行。如果try代码块没有发生异常,那么catch代码块将不会执行,而是直接跳转到finally代码块。如果try代码块发生了异常,那么首先会执行catch代码块来捕获异常,然后再执行finally代码块。所以无论是否有异常发生,finally代码块总是会在try或catch中的return语句之前执行。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [try/catch-finally的执行顺序](https://blog.csdn.net/HandCream123/article/details/120115406)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *3* [try-catch-finally的执行顺序](https://blog.csdn.net/tangxiujiang/article/details/116562388)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
try catch finally执行顺序
try-catch-finally语句的执行顺序如下:
1. try块中的代码会被首先执行。
2. 如果try块中的代码没有引发任何异常,那么catch块就不会执行,程序会直接跳到finally块执行。
3. 如果try块中的代码引发了异常,程序会跳到与该异常类型匹配的catch块中执行。
4. catch块执行完毕后,程序会继续执行finally块中的代码。
5. 如果finally块中没有return语句,程序会继续向下执行。
6. 如果finally块中有return语句,会覆盖掉try块或catch块中的return语句,导致程序返回finally块中的值。
需要注意的是,如果try块和catch块中都有return语句,finally块中的return语句只会覆盖掉try块或catch块中的return语句, 不会影响到try块或catch块之间的执行顺序。
阅读全文