Files
2026-07-13 12:31:34 +08:00

53 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import print_function, unicode_literals, absolute_import, division
import six
from flask import request, Response
from peewee import DoesNotExist, IntegrityError
from domain_admin.log import logger
from domain_admin.utils.flask_ext.api_result import ApiResult
import traceback
from domain_admin.utils.flask_ext.app_exception import AppException
def error_handler(e):
"""
全局错误处理
:param e: Exception
:return:
"""
logger.error("request.path: %s", request.path)
logger.error(traceback.format_exc())
if request.path.startswith('/api'):
code = -1
if isinstance(e, KeyError):
msg = '参数缺失' + str(e)
elif isinstance(e, DoesNotExist):
msg = '数据不存在'
elif isinstance(e, IntegrityError):
msg = '数据已存在'
elif isinstance(e, AppException):
msg = e.get_message()
code = e.get_code()
else:
msg = six.text_type(e)
return ApiResult.error(msg=msg, code=code)
else:
message = '未知错误'
if hasattr(e, 'message'):
message = e.message
return Response("Internal Server Error: {}".format(message), status=500)