try、catch、finally--try块里有return,finally还执行吗?
2024-10-07 13:58:28
finally块的作用是,保证无论出现什么情况,finally块里的代码一定会被执行。
由于程序执行return就意味着结束对当前函数的调用并跳出这个函数体,所以任何语句要执行都只能在return之前执行(除非碰到exit函数)。所以,finally块里的代码也是在return之前执行的。
如果try-finally或catch-finally中都有return,那么finally块中的return语句将会覆盖别处的return语句。
对于基本类型的数据,在finally块中改变return的值对返回值没有任何影响;而对引用类型的数据就会有影响。
面试:finally块是不是一定会执行?
1) 当程序在进入try块之前就出现异常,不会执行;
2) 当程序在try块中强制退出(System.exit(0))时,也不会执行。
最新文章
- Android 开发环境在 Windows7 下的部署安装
- 理解innodb buffer pool
- 关于 jquery和js获取宽度时只能取整数,取不到小数点
- std::list
- HDU 5025 Saving Tang Monk --BFS
- CCF真题Z型输出
- App Store Review Guideline(带翻译)
- [BZOJ2048] [2009国家集训队] 书堆
- JavaScript复习笔记——数据类型
- vs code 快捷键中英文对照
- JS编程题
- Unity中进程间通信——使用Protobuf-net序列化与反序列化
- 深入浅析JavaScript中with语句的理解
- 定时删除elasticsearch索引
- C# winform 数据库操作知识点总结(干货)
- keras系列︱seq2seq系列相关实现与案例(feedback、peek、attention类型)
- SQL数据库Replace的用法
- Cobbler实现自动化安装(上)--原理篇
- UVA 1213 Sum of Different Primes
- [BZOJ2226][SPOJ5971]LCMSum(莫比乌斯反演)