如题,之前使用的是 flask 框架, 抛出的异常都是自定义状态码和详细的异常信息, 抛出异常的格式为:
{
"code": "1001",
"data": {},
"response": "请求不符合规范",
"time": 2
}
然后现在学习使用 drf 框架, 比如在序列化器校验的时候抛出一个异常:
raise serializers.ValidationError('登录密码错误')
这个时候通过 postman 去故意触发这个报错,返回信息如下:
{
"non_field_errors": [
"登录密码错误"
]
}
然后我在序列化器中定义一个方法def validate_username
去检验用户名称,在该方法中定义一个异常:
raise serializers.ValidationError('用户名称不符合规范')
然后故意去触发该异常,返回的信息如下:
{
"username": [
"用户名称不符合规范"
],
}
我现在就有点蒙了, 为什么返回异常的字段还会不断的变化?或者我应该怎么样捕获到它所有的异常来统一处理呢?网上有人说定义方法重新捕获,但是像如上的这种情况,连异常的字段信息都不一致,我该如何捕捉到具体的报错信息呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.