# _*_ coding : UTF-8 _*_ # @Time : 2025/01/18 02:21 # @UpdateTime : 2025/01/18 02:21 # @Author : sonder # @File : exception.py # @Software : PyCharm # @Comment : 本程序 from typing import Optional, Any from fastapi.responses import JSONResponse from utils.response import Response class LoginException(Exception): """ 自定义登录异常。 - 用于处理登录相关的异常情况。 """ def __init__(self, message: str = "登录失败", data: Optional[Any] = None): """ 初始化登录异常。 :param message: 异常消息,默认为 "登录失败" :param data: 异常相关的数据 """ self.message = message self.data = data def to_response(self) -> JSONResponse: """ 将异常转换为统一的响应格式。 :return: JSONResponse 对象 """ return Response.failure(msg=self.message, data=self.data) class AuthException(Exception): """ 自定义令牌异常。 - 用于处理身份验证相关的异常情况。 """ def __init__(self, message: str = "身份验证失败", data: Optional[Any] = None): """ 初始化令牌异常。 :param message: 异常消息,默认为 "身份验证失败" :param data: 异常相关的数据 """ self.message = message self.data = data def to_response(self) -> JSONResponse: """ 将异常转换为统一的响应格式。 :return: JSONResponse 对象 """ return Response.unauthorized(msg=self.message, data=self.data) class PermissionException(Exception): """ 自定义权限异常。 - 用于处理权限相关的异常情况。 """ def __init__(self, message: str = "权限不足", data: Optional[Any] = None): """ 初始化权限异常。 :param message: 异常消息,默认为 "权限不足" :param data: 异常相关的数据 """ self.message = message self.data = data def to_response(self) -> JSONResponse: """ 将异常转换为统一的响应格式。 :return: JSONResponse 对象 """ return Response.forbidden(msg=self.message, data=self.data) class ServiceException(Exception): """ 自定义服务异常。 - 用于处理服务层逻辑相关的异常情况。 """ def __init__(self, message: str = "服务异常", data: Optional[Any] = None): """ 初始化服务异常。 :param message: 异常消息,默认为 "服务异常" :param data: 异常相关的数据 """ self.message = message self.data = data def to_response(self) -> JSONResponse: """ 将异常转换为统一的响应格式。 :return: JSONResponse 对象 """ return Response.error(msg=self.message, data=self.data) class ServiceWarning(Exception): """ 自定义服务警告。 - 用于处理服务层逻辑中的警告情况(非致命错误)。 """ def __init__(self, message: str = "服务警告", data: Optional[Any] = None): """ 初始化服务警告。 :param message: 警告消息,默认为 "服务警告" :param data: 警告相关的数据 """ self.message = message self.data = data def to_response(self) -> JSONResponse: """ 将警告转换为统一的响应格式。 :return: JSONResponse 对象 """ return Response.failure(msg=self.message, data=self.data) class ModelValidatorException(Exception): """ 自定义模型校验异常。 - 用于处理数据模型校验失败的异常情况。 """ def __init__(self, message: str = "数据校验失败", data: Optional[Any] = None): """ 初始化模型校验异常。 :param message: 异常消息,默认为 "数据校验失败" :param data: 异常相关的数据 """ self.message = message self.data = data def to_response(self) -> JSONResponse: """ 将异常转换为统一的响应格式。 :return: JSONResponse 对象 """ return Response.failure(msg=self.message, data=self.data)