Skip to content

异常处理

异常处理是妥善处理可能在执行期间导致程序崩溃的异常的过程。

当错误发生时,程序会抛出异常。

运行时系统会尝试查找异常处理程序 (exception handler),这是一个可以处理特定类型错误的代码块。一旦找到,合适的异常处理程序会捕获异常 (catches the exception) 并执行代码块,该代码块可以尝试从错误中恢复。如果错误无法恢复,处理程序提供了一种温和退出程序的方式。

Python 中的 try 语句指定了代码块的异常处理程序和/或清理代码。

try 语句的各个部分是:

  • try 块:可能抛出异常的语句块。
  • except 子句:一个或多个异常处理程序。每个 except 子句处理特定类型的异常。如果在 try 块中发生特定类型的异常,则执行相应的 except 子句代码块。
  • else 子句:可以在最后一个 except 块之后包含一个可选的 else 子句。如果没有引发异常,则不会执行任何 except 块。在这种情况下,将执行 else 代码块。
  • finally 子句:可以在 try 语句的末尾添加一个可选的 finally 子句,其中包含一个语句块,无论 try 块内部是否发生任何错误,该语句块都会执行。此块通常用于代码清理和关闭所有打开的文件对象。

以下是这些语句的一般形式:

python
try:
    [代码块]
except [异常类型1 [as 标识符1]]:
    [异常处理代码块 1]
except [异常类型2 [as 标识符2]]:
    [异常处理代码块 2]
...
...
else:
    [如果没有错误则执行的代码块]
finally:
    [总是执行的代码块]