#前面了解了一个try语句对应多个except子句,若需要一个try对应一个except子句,同时捕捉一个以上异常,能实现吗?先来看示例:
1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #异常_2 4 5 def model_exception(x,y): 6 try: 7 b=name 8 a=x/y 9 except(ZeroDivisionError,NameError,TypeError): 10 print('one of ZeroDivisionError or NameError or TypeError') 11 12 model_exception(2,0)
#程序执行结果如下:
D:Pythonworkspacedatatime20171219>python 异常_2.py one of ZeroDivisionError or NameError or TypeError
#由执行结果看到,如果需要使用一个块捕捉多个类型异常,可以将他们作为元组列出。使用该方式时,遇到的异常类型是元组中的任意一个,都会走异常流程。
#这么做有什么好处呢?假如我们希望多个except子句输出同样的信息,就没有必要在几个except子句中重复输入语句,放到一个异常块中即可。