|
异常处理
异常
- 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
- 一般情况下,在Python无法正常处理程序时就会发生一个异常。
- 异常是Python对象,表示一个错误。
- 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
捕获异常
异常类型捕获
- # 捕获常规异常
- try:
- 可能发生错误的代码
- except:
- 如果出行异常执行的代码
- # 捕获指定异常
- try:
- 可能发生错误的代码
- except NameError as e: # e = 当前异常对象
- 如果出行异常执行的代码
-
- # 捕获多个异常
- try:
- 可能发生错误的代码
- except(NameError, ZeroDisvisionError):
- 如果出行异常执行的代码
-
- # 捕获全部异常(捕获常规异常也可以)
- try:
- 可能发生错误的代码
- except Exception as e: # e = 当前异常对象
- 如果出行异常执行的代码
复制代码 常见异常类型
异常名称描述AttributeError对象没有这个属性OSError操作系统错误ImportError导入模块/对象失败IndexError序列中没有此索引(index)KeyError没有这个键NameError未声明/初始化对象 (没有属性)SyntaxErrorPython 语法错误TypeError对类型无效的操作ValueError传入无效的参数Warning警告的基类try-except-else
- 如果抛出异常执行except内部代码
- 如果程序正常执行else内部代码
- # else异常
- try:
- print(1)
- except Exception as e:
- print(e)
- else:
- print("我是else,是没有异常的时候执行的代码")
复制代码 try-except-finally
不管程序有无发生异常,都将执行finally内部代码。
- # 异常的Finally(无论是否有异常,都要执行的代码)
- try:
- f = open("test.txt",'r')
- except Exception as e:
- f = open("test.txt",'w')
- else:
- print("未出现异常")
- finally:
- f.close()
复制代码注意:else和Finally可写可不写
主动触发异常
- 在实际开发中,在程序不满足某条件时,通常会主动抛出异常。
- 语法:raise Exception()
[code]# 判断煎饼熟了没,当烹饪时间小于5时,则主动触发没熟异常;否则熟了。def test(level): if level |
|