try...多个except结构
上面的结构可以捕获所有的异常,工作中也很常见,但是,从经典理论考虑,一般建议捕获可能出现的多个异常(按照先子类后父类的顺序),并且针对性的写出多个异常处理代码。为了避免遗漏可能出现的异常,可以在最后增加BaseExpection。结构如下:
try:
被监控的,可能引发异常的语句块
expect Exception1:
处理异常Exception1语句块
expect Exception2:
处理异常Expection2语句块
...
expect BaseEception:
处理可能遗漏的异常语句块
1 try: 2 a = int(input('请输入一个被除数')) 3 b = int(input('请输入除数')) 4 c = float(a)/float(b) 5 print(c) 6 except ZeroDivisionError: 7 print('异常,被除数不能为零') 8 except ValueError: 9 print('异常,不能输入字符串!') 10 except NameError: 11 print('异常,变量不存在!') 12 13 except BaseException as e: 14 print(e)