📜  Python – 捕获所有异常(1)

📅  最后修改于: 2023-12-03 14:46:10.547000             🧑  作者: Mango

Python – 捕获所有异常

在编写程序时,经常会出现错误。这些错误可能由多种原因引起,例如用户输入的数据无效、网络连接中断或系统资源不足等。为了避免让程序因异常而崩溃,我们需要采取措施来捕获和处理异常。在 Python 中,我们可以使用 try..except..finally 块来捕获异常。

try..except..finally

try..except..finally 块用于捕获和处理异常。

try:
    # 代码块
except ExceptionType1:
    # 处理 ExceptionType1 异常
except ExceptionType2:
    # 处理 ExceptionType2 异常
else:
    # 当 try 块没有引发任何异常时执行
finally:
    # 不管有没有异常都要执行的代码

在上面的代码中,try 关键字用来引导可能引发异常的代码块。当这些代码块抛出异常时,程序会寻找 except 关键字后面声明的异常类型。如果代码块引发了该类型的异常,那么 except 块就会被执行。

在 except 块中,我们可以写出针对特定类型异常的处理方法。如果发生了多个异常,我们可以使用多个 except 块来处理它们。

else 关键字用于在 try 块没有抛出任何异常时执行的代码块。

finally 块中的代码无论是否引发异常都将被执行。

示例

下面是一个简单的示例,演示了如何使用 try..except 关键字来处理可能引发的异常。

try:
    a = int(input("输入一个整数: "))
    print(10 / a)
except ValueError:
    print("输入无效。你必须输入一个整数。")
except ZeroDivisionError:
    print("0 不能作为除数。")
except:
    print("出现了一个错误。")
finally:
    print("程序结束。")

在上面的代码中,我们尝试将用户输入的字符串转换为整数。如果输入无效,将引发 ValueError 异常。如果输入为 0,则会引发 ZeroDivisionError 异常。最后,如果有任何其他类型的异常,就会执行 except 块中的代码。

如果没有任何异常发生,else 块中的代码就会被执行。最后,无论是否抛出异常,finally 块中的代码都将被执行。