跳到主要内容

Python 程序在一行中捕获多个异常

要理解这个例子,你需要了解以下Python 编程主题的知识:

可以使用元组来捕获多个异常。如下例所示,错误可以通过元组传递。

作为括号内元组的多个异常

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

在这里,我们试图捕获两种类型的异常:TypeErrorValueError,这两种异常被放在 except 块中的一个元组里。

在上面的例子中,字符串和整数不能相加,因此捕获了 TypeError

让我们看另一个例子,其中有不同的异常。

输入

a
b

输出

invalid literal for int() with base 10: 'b'

在上面的例子中,第二个输入应该是一个整数,但我们传递了一个字符串 'b'。因此,引发了 ValueError

注意:在多个异常的情况下,首先出现的错误会被作为异常捕获。