163 lines
4.2 KiB
Python
163 lines
4.2 KiB
Python
|
# _*_ 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)
|