我正在构建一个Web应用程序,用作我们的移动和Electron应用程序的Web API服务器。我也在尝试正确设计我们的错误处理。
我使用Django
,Django Rest Framework
来实现RESTful API
。
对于psycopg2 errors
,我得到以下信息:
关系“基本信息”的“列“ unifiedidd”不 存在\ n第1行:INSERT INTO profile.basicinformation(unifiedidd, 名字,... \ n ^ \ n查询: INSERT INTO profile.basicinformation(unifiedidd,firstname, 中间名,姓氏,性别,生日)VALUES ('8f38f402-ddee-11ea-bfee-ead0fcb69cd9':: uuid,'Lily Francis Jane', 'Luo Yi','Chao Fan','Male','1990-03-20')\ n上下文:PL / pgSQL 函数inline_code_block在SQL语句的第5行\ n“
在我的查看文件中,我正在捕获这些错误,例如:
def post(self, request, *args, **kwargs):
try:
return Response({"message": "Cool"},status=http_200_OK)
except ProgrammingError as e:
return Response({"message": str(e)},status=http_500_INTERNAL_SERVER_ERROR)
except IntegrityError as e:
return Response({"message": str(e)},status=http_500_INTERNAL_SERVER_ERROR)
except Exception as e:
return Response({"message": str(e)},status=http_500_INTERNAL_SERVER_ERROR)
我不确定如何正确处理异常并将异常响应尽可能多地反馈给API客户端。