try - catch -finally 中finally在什么时候执行?

结论:

1
2
3
1.finally中的语句 如果没有加入return,是在trycatch 中,return执行表达式之后,return执行返回操作之前执行;
 
2.finally中的语句 如果还有return,方法会提现返回,返回的结果是finallyreturn 的执行

  

复制代码
package lambda;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * TODO
 *
 * @author zhaoJs
 * @version 1.0
 * @date 2022/9/19 9:24
 */
@SpringBootTest(classes = FinallyTest.class)
@RunWith(SpringRunner.class)
@Slf4j
public class FinallyTest {
    
    public int getTt(){
        int a = 1;
        try {
            int h = 0;
            a = a/h;
            return a + 1;
        } catch (Exception e) {
            return a + 2;
        } finally {
            a = 30;
            return a;
        }
    }
    
    @Test
    public void finallyTt(){
       log.info(getTt() + ""); 
    }


    
}
View Code
复制代码

 

posted @   BBS_自律  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
点击右上角即可分享
微信分享提示