Django-djangorestframework-异常模块-源码及自定义异常
目录 异常模块 为什么要自定义异常模块 常见的几种异常情况 异常模块源码分析 自定义 drf 异常处理 异常模块 为什么要自定义异常模块 所有 经过 drf APIView 视图类产生的异常 ,都可以提供异常处理方案(没有继承 APIVIew 的视图函数不会触发) drf 默认提供了异常处理方案( rest_framework.views.exception_handler ),但是处理范围有限 drf 提供的处理方案有两种 有对应处理,处理了返回异常信息 没有对应处理(处理范围之外),返回 None,直接服务器抛异常给前台 自定义异常的目的就是解决 drf 没有处理的异常,让前台得到合理的异常信息返回,后台记录异常具体的信息(方便事后排查) 如果程序报错了,我们应该尽可能的隐藏后台的错误,返回给前台就是服务器错误(你返回给用户用户也看不懂呀,如果是黑客,那可能还会利用报错袭击服务器) 常见的几种异常情况 像这种就比较可怕了,甚至连代码文件位置都暴露了 drf 异常处理模块处理后的异常 drf 异常处理模块处理后的异常 异常信息经汉化后的报错(django 配置了国际化后) 异常模块源码分析 视图函数执行出现异常会自动触发 handle_exception 函数 每个请求都会经历这么一个过程,走到 dispatch 函数 E:/python3-6-4/Lib/site