• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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实现csdn全部博文下载并转PDF
    下一篇:这三个好用的python函数你不能不知道!
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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