Python 面试题
目录

Python 中如何自定义异常类?

· 约 3 分钟读完 · 第 55 / 171 章

推荐答案

在 Python 中,自定义异常类可以通过继承内置的 Exception 类来实现。以下是一个简单的示例:

本题详细解读

1. 自定义异常类的基本结构

在 Python 中,所有的异常类都继承自 BaseException 类,但通常我们会直接继承 Exception 类,因为它是大多数内置异常的基类。自定义异常类的基本结构如下:

2. 自定义异常类的初始化方法

为了在抛出异常时传递更多的信息,通常会在自定义异常类中重写 __init__ 方法。例如:

在这个例子中,message 参数用于传递异常的具体信息,super().__init__(self.message) 调用了父类的 __init__ 方法,确保异常信息被正确设置。

3. 使用自定义异常

自定义异常的使用方式与内置异常相同。可以通过 raise 关键字抛出异常,并通过 try-except 块捕获和处理异常:

4. 自定义异常类的其他功能

除了基本的异常信息传递,自定义异常类还可以添加其他功能,例如记录日志、提供更多的上下文信息等。例如:

在这个例子中,当异常被抛出时,会自动记录一条错误日志。

5. 继承多个异常类

Python 支持多重继承,因此自定义异常类可以继承多个异常类。例如:

这种用法在某些特定场景下可能会有用,但通常不建议过度使用多重继承,以免增加代码的复杂性。