主页 > 知识库 > Python异常处理中容易犯得错误总结

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

热门标签:呼叫中心市场需求 服务器配置 银行业务 网站文章发布 检查注册表项 智能手机 美图手机 铁路电话系统

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 异常处理的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
  • 浅谈python中的错误与异常
  • Python基础之语法错误和异常详解
  • Python运行错误异常代码含义对照表
  • 新手常见Python错误及异常解决处理方案
  • 使用Python将Exception异常错误堆栈信息写入日志文件
  • Python学习笔记之错误和异常及访问错误消息详解
  • Python 错误和异常小结
  • Python错误和异常总结详细

标签:长治 河南 乐山 上海 红河 新疆 沧州 沈阳

巨人网络通讯声明:本文标题《Python异常处理中容易犯得错误总结》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266