zoukankan      html  css  js  c++  java
  • try...catch...finally的疑问

    突然遇到一个疑问:当try...catch...finally同时存在的时候,怎样才能跳出catch,而不执行finally里面的语句,我做了如下两种测试(return和goto),均发现finally无论什么情况下都一定会执行的。如下:

    当遇到这个问题的时候,我在思考这样的情况发生时就存在return和goto与finally的矛盾,后来查看了某些资料,才知道它是跟IL层有关系结论是在IL层跳出catch块会出现一个leave.s,这个leave.s会确保finally块的执行,所以,即使在catch中使用了return语句想直接跳出,还是会先执行finally再return的。

    OK~结论就是无论在catch中放入什么东西来打断语句的执行都是不可能的,相反它会先执行finally再返回到需要跳出或者是跳转的语句块。

  • 相关阅读:
    MVC中CheckBox
    Python中的高级数据结构
    高级正则表达式技术(Python版)
    程序员可以兼任项目经理吗?
    浅谈五大Python Web框架
    学习Python编程的11个资源
    Python 代码性能优化技巧
    python多线程ctrl-c退出问题
    Python 笔记 : 类和继承
    Python的OO思想
  • 原文地址:https://www.cnblogs.com/nlx0201/p/1908130.html
Copyright © 2011-2022 走看看