重写异常模块

重写

from rest_framework.views import exception_handler as drf_exception_handler
from rest_framework.response import Response
def exception_handler(exc, context):
    # drf_exception_handler的执行结果就是异常信息的Response对象或None
    # 是Response对象可以直接返回
    # 是None可以从exc中拿到异常信息,从context拿到是谁出现的异常,自己格式化成Response对象返回
    # 重点:自定义异常模块目的是记录异常信息到日志文件 - 产品阶段
    response = drf_exception_handler(exc, context)
    if response is None:
        response = Response({'detail': '%s' % exc}, status=500, exception=True)
    # logging.error(response.data)
    return response

settings中的配置

REST_FRAMEWORK = {
    # 异常模块
    # 'EXCEPTION_HANDLER': 'rest_framework.views.exception_handler',
    'EXCEPTION_HANDLER': 'utils.exception.exception_handler',
}

猜你喜欢

转载自www.cnblogs.com/xiongchao0823/p/11930336.html