当前位置:   article > 正文

python中异常处理 try except finally else 执行顺序详解_在完整的异常捕获语句中,各子句的顺序为

在完整的异常捕获语句中,各子句的顺序为
  1. try:
  2. 可能触发异常的语句
  3. except 错误类型1 [as 变量2]:
  4. 异常处理语句1
  5. except 错误类型2 [as 变量2]:
  6. 异常处理语句2
  7. except (错误类型3,错误类型4,······) [as 变量3]:
  8. 异常处理语句3
  9. except:
  10. 异常处理语句other
  11. else
  12. 未发生异常的语句
  13. finally
  14. 最终语句
  15. 异常流
  1. 说明:
  2. except子句可以有一个或多个,但至少要有一个
  3. as子句是用于绑定错误对象的变量,可以省略
  4. else子句最多只能有一个,也可以省略
  5. finally子句最多只能有一个,也可以省略不写
  1. 处理说明:
  2. except子句用来捕获和处理某种类型的错误发生时,处理异常
  3. except 子句会根据错误的类型进行匹配,如匹配成功则调用异常处理语句进行处理,然后程序转为正常状态
  4. 如果except子句没有匹配到任何类型的异常则转到except:子句
  5. 如果没有任何except子句进行处理,则程序的异常状态会继续下去,并向上层传递
  6. 如果没有异常,则执行else子句中的语句
  7. 最终执行finally子句中语句,finally里的代码块执行完毕,代表try语句执行完,则进入正常状态,try语句之外的语句还是照常执行

 

  1. # 简单示例
  2. def learn_try():
  3. try:
  4. raise ValueError("值错误")
  5. except Exception as e:
  6. print(e)
  7. return e
  8. else:
  9. # else语句在无异常时执行
  10. print("try中的else")
  11. finally:
  12. # finally语句是一定执行的语句
  13. print("Done")
  14. learn_try()
'
运行
  1. 示例
  2. def div_apple(n):
  3. print("现有", n, '个苹果,请问分给几个人')
  4. d = int(input("请输入人数:  "))
  5. print("每个人分", n/d, '个苹果')
  6. try:
  7. div_apple(10)
  8. except ValueError: #转为正常状态
  9. print('值转换错误异常')
  10. print(ValueError)
  11. except ZeroDivisionError as r: #打印r和打印前面的异常类型结果不同,r是异常信息,异常类型是一个地址,并转为正常状态
  12. print("出现被除数为0的异常", end = '\n\n')
  13. except: #转为正常状态
  14. print('异常在以上语句中为捕捉到,本公主才出马')
  15. else:
  16. print("程序没有出现异常状态时,执行此语句")
  17. finally:
  18. print("我是必须执行的语句")
  19. print("try语句外的语句")

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/835381
推荐阅读
相关标签
  

闽ICP备14008679号