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)