Python 错误和异常处理

本文档将介绍如何在 Python 3 中处理错误和异常。

1. 什么是错误和异常?

在程序运行时,可能会出现各种错误。这些错误可以分为两类:语法错误(SyntaxError)和异常(Exceptions)。

  • 语法错误:Python 解释器无法理解的代码错误。它们通常是由于拼写错误、缺少括号或缩进错误等引起的。

  • 异常:程序运行时出现的意外情况,比如除数为零、文件未找到等。这些情况不会让程序崩溃,但是需要我们正确地处理它们。

2. try/except 语句

Python 提供了 try/except 语句来处理异常。基本的语法如下:

try:
    # 可能出现错误的代码块
except ExceptionType1:
    # 处理 ExceptionType1 类型异常的代码块
except ExceptionType2:
    # 处理 ExceptionType2 类型异常的代码块
...
else:
    # 没有出现异常时执行的代码块
finally:
    # 无论是否出现异常,都会执行的代码块
  • try 语句用于标记可能发生错误的代码块。
  • except 语句后面跟着一个或多个异常类型,用于捕获特定类型的异常。
  • else 语句在没有出现异常时执行。
  • finally 语句无论是否发生异常都会被执行。

3. 自定义异常

你还可以创建自己的异常类,继承自内置的 Exception 类或其子类。这在需要特别标识某些错误情况时非常有用:

class MyError(Exception):
    def __init__(self, value):
        self.value = value
    def __str__(self):
        return repr(self.value)

try:
    raise MyError(3*2)
except MyError as error:
    print('A custom exception occurred: ', error.value)

在这个例子中,我们创建了一个名为 MyError 的异常类,然后在 try 块中抛出该异常。在 except 块中,我们捕获该异常并打印其值。

4. 调试和测试

最后,记得利用 Python 的内置模块 pdb 进行调试,以及使用单元测试框架(如 unittestpytest)来确保你的异常处理代码正确无误。