广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python异常处理中容易犯得错误总结
  • 406
分享到

Python异常处理中容易犯得错误总结

python异常处理python异常处理错误 2022-06-02 22:06:24 406人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录python异常处理机制容易犯的错误1容易犯的错误2总结Python异常处理机制 如果try异常处理中存在finally,finally中的代码总会得到执行 下面例子只是作为演示,不用去纠结业务逻辑 容易犯的错

目录
  • python异常处理机制
  • 容易犯的错误1
  • 容易犯的错误2
  • 总结

Python异常处理机制

如果try异常处理中存在finally,finally中的代码总会得到执行

下面例子只是作为演示,不用去纠结业务逻辑

容易犯的错误1

看下面的代码,写出输出结果


def dig_dig1():
    while True:
        print("I'm in while loop")
        try:
            print("I'm in try")
            raise EOFError
        except ioError:
            print("IOEoor")
        finally:
            print("I'm in finally")
            break


dig_dig1()

原以为会输出的结果:


I'm in while loop
I'm in try
I'm in finally
EOFError

Process finished with exit code 1

运行结果


I'm in while loop
I'm in try
I'm in finally

Process finished with exit code 0
  1. 如果异常处理中存在finally, finally总会被执行;
  2. 那么在执行finally之前,try中的产生的异常将会被临时保存起来,当finally的代码执行完成后,再抛出异常;
  3. 但当finally中存在raise或return或break时, try中的异常将会被抛弃。

容易犯的错误2

看下面的代码,写出输出结果


def dig_dig2(index):
    try:
        print("I'm in try")
        if index < 0:
            raise IndexError
        else:
            return index
    except IndexError:
        print("I'm in except")
        return "except"
    finally:
        print("I'm in finally")
        return "finally"


print(dig_dig2(12))

原以为会输出的结果:


I'm in try
12

运行结果


I'm in try
I'm in finally
finally

Process finished with exit code 0
  1. 如果异常处理中存在finally, finally总会被执行。
  2. 如果在try块语句中存在return的同时又存在finally块语句,那么将会在执行try块语句中return语句之前去执行finally语句块,然后再回来执行try块语句中return语句。
  3. 但是例子中在finally块语句中存在return语句,整个函数已结束,所以try块语句中return语句将永远得不到执行。

总结

一般情况下,如果异常处理中存在finally, finally总会被执行。但是,存在以下情况就需要注意:

  1. 在执行finally之前,try中的产生的异常将会被临时保存起来,当finally的代码执行完成后,再抛出异常; 但当finally中存在raise或return或break时, try中的异常将会被抛弃。
  2. 如果在try块语句中存在return的同时又存在finally块语句,那么将会在执行try块语句中return语句之前去执行finally语句块,然后再回来执行try块语句中return语句。但是在finally块语句中存在return语句,整个函数已结束,所以try块语句中return语句将永远得不到执行。

以上就是Python异常处理中容易犯得错误总结的详细内容,更多关于python 异常处理的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python异常处理中容易犯得错误总结

本文链接: https://www.lsjlt.com/news/10916.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作