可以使用元组捕获多个异常。异常可以通过元组传递,如下例所示。
作为带括号的元组的多个异常
string = input()
try:
num = int(input())
print(string+num)
except (TypeError, ValueError) as e:
print(e)
输入
a 2
输出
can only concatenate str (not "int") to str
在这里,我们尝试捕获两种类型的异常 `TypeError` 和 `ValueError`,它们作为元组内部传递到 `except` 块中。
在上面的例子中,字符串和整数不能相加,所以捕获到 `TypeError`。
让我们看另一个不同异常的例子。
输入
a b
输出
invalid literal for int() with base 10: 'b'
在上面的例子中,第二个输入应该是一个整数,但我们传递了一个字符串 `‘b’`。因此,引发了 `ValueError`。
注意:在有多个异常的情况下,最先出现的错误会被捕获为异常。
另请阅读