翼度科技»论坛 云主机 LINUX 查看内容

16异常处理

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
异常处理

异常



  • 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
  • 一般情况下,在Python无法正常处理程序时就会发生一个异常。
  • 异常是Python对象,表示一个错误。
  • 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
捕获异常

异常类型捕获
  1. # 捕获常规异常
  2. try:
  3.     可能发生错误的代码
  4. except:
  5.     如果出行异常执行的代码
  6. # 捕获指定异常
  7. try:
  8.     可能发生错误的代码
  9. except NameError as e:  # e = 当前异常对象
  10.     如果出行异常执行的代码
  11.    
  12. # 捕获多个异常
  13. try:
  14.     可能发生错误的代码
  15. except(NameError, ZeroDisvisionError):
  16.     如果出行异常执行的代码
  17.    
  18. # 捕获全部异常(捕获常规异常也可以)
  19. try:
  20.     可能发生错误的代码
  21. except Exception as e:  # e = 当前异常对象
  22.     如果出行异常执行的代码
复制代码
常见异常类型

异常名称描述AttributeError对象没有这个属性OSError操作系统错误ImportError导入模块/对象失败IndexError序列中没有此索引(index)KeyError没有这个键NameError未声明/初始化对象 (没有属性)SyntaxErrorPython 语法错误TypeError对类型无效的操作ValueError传入无效的参数Warning警告的基类try-except-else



  • 如果抛出异常执行except内部代码
  • 如果程序正常执行else内部代码
  1. # else异常
  2. try:
  3.     print(1)
  4. except Exception as e:
  5.     print(e)
  6. else:
  7.     print("我是else,是没有异常的时候执行的代码")
复制代码
try-except-finally

不管程序有无发生异常,都将执行finally内部代码。
  1. # 异常的Finally(无论是否有异常,都要执行的代码)
  2. try:
  3.     f = open("test.txt",'r')
  4. except Exception as e:
  5.     f = open("test.txt",'w')
  6. else:
  7.     print("未出现异常")
  8. finally:
  9.     f.close()
复制代码
注意:else和Finally可写可不写
主动触发异常



  • 在实际开发中,在程序不满足某条件时,通常会主动抛出异常。
  • 语法:raise Exception()
[code]# 判断煎饼熟了没,当烹饪时间小于5时,则主动触发没熟异常;否则熟了。def test(level):    if level

举报 回复 使用道具