3:try_多个except结构

      上面的结构可以捕获所有的异常,工作中也很常见。但是,从经典理论考虑,一般建议尽量捕获可能出现的多个异常(按照先子类后父类的顺序),并且针对性的写出异常处理代码。为了避免遗漏可能出现的异常,可以在最后增加 BaseException。结构如下:

try:

  被监控的、可能引发异常的语句块

except Exception1:
  处理 Exception1 的语句块
except Exception2:
  处理 Exception2 的语句块

...

except BaseException:
  处理可能遗漏的异常的语句块

【示例】多个 except 结构

try:
    a = input("请输入被除数:")
    b = input("请输入除数:")
    c = float(a) / float(b)
    print(c)

except ZeroDivisionError:
    print("异常:除数不能为 0")
except TypeError:
    print("异常:除数和被除数都应该为数值类型")
except NameError:
    print("异常:变量不存在")
except BaseException as e:
    print(e)
    print(type(e))

运行结果:

"D:\Program Files\Python310\python.exe" D:\work\python\four\mypy05.py 
请输入被除数:10
请输入除数:0
异常:除数不能为 0

 

posted @ 2022-11-21 17:57  竹蜻蜓vYv  阅读(67)  评论(0编辑  收藏  举报