王会计 发表于 2023-4-26 16:39:54

16异常处理

异常处理

异常



[*]异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
[*]一般情况下,在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()
# 判断煎饼熟了没,当烹饪时间小于5时,则主动触发没熟异常;否则熟了。def test(level):    if level
页: [1]
查看完整版本: 16异常处理