From 2fef16e58bf2bac591683133517dcadb2d3cf74d Mon Sep 17 00:00:00 2001 From: insistence <3055204202@qq.com> Date: Tue, 9 Jul 2024 16:25:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E5=A4=84=E7=90=86=E8=87=AA=E5=AE=9A=E4=B9=89=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=8F=8A=E5=85=B6=E4=BB=96=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-fastapi-backend/exceptions/exception.py | 10 ++++++++++ ruoyi-fastapi-backend/exceptions/handle.py | 17 ++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/ruoyi-fastapi-backend/exceptions/exception.py b/ruoyi-fastapi-backend/exceptions/exception.py index 28c39a6..0a94948 100644 --- a/ruoyi-fastapi-backend/exceptions/exception.py +++ b/ruoyi-fastapi-backend/exceptions/exception.py @@ -28,6 +28,16 @@ class PermissionException(Exception): self.message = message +class ServiceException(Exception): + """ + 自定义服务异常ServiceException + """ + + def __init__(self, data: str = None, message: str = None): + self.data = data + self.message = message + + class ModelValidatorException(Exception): """ 自定义模型校验异常ModelValidatorException diff --git a/ruoyi-fastapi-backend/exceptions/handle.py b/ruoyi-fastapi-backend/exceptions/handle.py index d394542..b4ad02b 100644 --- a/ruoyi-fastapi-backend/exceptions/handle.py +++ b/ruoyi-fastapi-backend/exceptions/handle.py @@ -1,7 +1,8 @@ from fastapi import FastAPI, Request from fastapi.exceptions import HTTPException from pydantic_validation_decorator import FieldValidationError -from exceptions.exception import AuthException, PermissionException, ModelValidatorException +from exceptions.exception import AuthException, PermissionException, ServiceException, ModelValidatorException +from utils.log_util import logger from utils.response_util import ResponseUtil, JSONResponse, jsonable_encoder @@ -19,14 +20,22 @@ def handle_exception(app: FastAPI): async def permission_exception_handler(request: Request, exc: PermissionException): return ResponseUtil.forbidden(data=exc.data, msg=exc.message) + # 自定义服务异常 + @app.exception_handler(ServiceException) + async def service_exception_handler(request: Request, exc: ServiceException): + logger.warning(exc.message) + return ResponseUtil.failure(data=exc.data, msg=exc.message) + # 自定义模型检验异常 @app.exception_handler(ModelValidatorException) async def model_validator_exception_handler(request: Request, exc: ModelValidatorException): + logger.warning(exc.message) return ResponseUtil.failure(data=exc.data, msg=exc.message) # 自定义字段检验异常 @app.exception_handler(FieldValidationError) async def field_validation_error_handler(request: Request, exc: FieldValidationError): + logger.warning(exc.message) return ResponseUtil.failure(msg=exc.message) # 处理其他http请求异常 @@ -36,3 +45,9 @@ def handle_exception(app: FastAPI): content=jsonable_encoder({"code": exc.status_code, "msg": exc.detail}), status_code=exc.status_code ) + + # 处理其他异常 + @app.exception_handler(Exception) + async def exception_handler(request: Request, exc: Exception): + logger.exception(exc) + return ResponseUtil.error(msg=str(exc))