123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- from typing import Any
- from fastapi import HTTPException
- class BaseHTTPException(HTTPException):
- """
- 基础异常
- """
- type: str = None
- param: str = None
- def __init__(
- self,
- status_code: int,
- error_code: str,
- message: str = None,
- type: str = None,
- param: str = None,
- detail: Any = None,
- ):
- self.status_code = status_code
- self.error_code = error_code
- self.message = message
- self.type = type
- self.param = param
- super().__init__(status_code, detail)
- def __str__(self) -> str:
- return f"status_code={self.status_code} error_code={self.error_code} message={self.message}"
- class BadRequestError(BaseHTTPException):
- """
- 请求参数异常
- """
- def __init__(self, message: str, error_code: str = "bad_request"):
- self.status_code = 400
- self.error_code = error_code
- self.message = message
- self.type = "invalid_request_error"
- class ValidateFailedError(BaseHTTPException):
- """
- 校验失败
- """
- def __init__(self, message: str = "Validation failed", error_code: str = "validation_failed"):
- self.status_code = 422
- self.error_code = error_code
- self.message = message
- self.type = error_code
- class AuthenticationError(BaseHTTPException):
- """
- 未认证
- """
- def __init__(self, message: str = "Unauthorized", error_code: str = "unauthorized"):
- self.status_code = 401
- self.error_code = error_code
- self.message = message
- class AuthorizationError(BaseHTTPException):
- """
- 未授权
- """
- def __init__(self, message: str = "Forbidden", error_code: str = "forbidden"):
- self.status_code = 403
- self.error_code = error_code
- self.message = message
- class ResourceNotFoundError(BaseHTTPException):
- """
- 资源不存在
- """
- def __init__(self, message: str = "Resource not found", error_code: str = "resource_not_found"):
- self.status_code = 404
- self.error_code = error_code
- self.message = message
- self.type = "not_found_error"
- class InternalServerError(BaseHTTPException):
- """
- 服务器内部异常
- """
- def __init__(self, message: str = "Internal Server Error", error_code: str = "internal_server_error"):
- self.status_code = 500
- self.message = message
- self.error_code = error_code
- self.type = error_code
- class ServerError(BaseException):
- """
- 服务端异常
- """
- def __init__(self, message: str):
- self.message = message
|