Python自定义一个异常类的方法

  • Post category:Python

Python 自定义异常类的方法分为以下四步:

1.定义异常类,继承Python内置的Exception类。

2.在自定义异常类中添加构造函数,可以接收额外的参数。

3.在需要抛出异常的位置,使用 raise 语句抛出自定义异常,并传入异常信息。

4.在代码中实现异常处理,对自定义异常进行捕获,并在处理中对异常做出响应。

下面给出两个示例来说明 Python 自定义异常类方法的实现。

示例1

定义一个异常类,当传入的参数不满足条件时,抛出异常。

class CustomException(Exception):
    def __init__(self, msg):
        self.msg = msg

def func(num):
    if num < 0:
        raise CustomException("num must be greater than or equal to 0")
    return num

try:
    num = func(-1)
except CustomException as e:
    print(e.msg)

示例2

定义一个异常类,用于验证给定的邮箱地址格式是否正确,当传入的邮箱地址不满足条件时,抛出异常。

import re

class EmailFormatException(Exception):
    def __init__(self, email):
        self.email = email

def validate_email(email):
    pattern = re.compile(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')
    if not pattern.match(email):
        raise EmailFormatException(email)

try:
    validate_email('123')
except EmailFormatException as e:
    print(f"{e.email} is not a valid email address.")

在以上两个示例中,我们成功自定义了两个异常类,并实现了异常的使用,使得我们能够更好地控制程序运行流程,增强程序的可读性和可维护性。