正确处理psycopg2错误

问题描述

我正在构建一个Web应用程序,用作我们的移动和Electron应用程序的Web API服务器。我也在尝试正确设计我们的错误处理。

我使用DjangoDjango Rest Framework来实现RESTful API

对于psycopg2 errors,我得到以下信息:

关系“基本信息”的“列“ unifiedidd”不 存在\ n第1行:INSERT INTO profile.basic@R_37_4045@ion(unifiedidd, 名字,... \ n ^ \ n查询: INSERT INTO profile.basic@R_37_4045@ion(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)
  1. 我想确认的第一件事是,由于错误内容,我认为输出整个内容不是一个好主意吗?由于它显示了实际的查询。这很有用,但可能仅用于开发人员使用的错误日志记录。
  2. 因此,我假设我需要输出自定义消息。但是鉴于可能会遇到大量错误,并且我认为不可能为这些错误中的每一个创建自定义消息,因此我正在考虑仅输出通配错误消息,例如“遇到了意外错误。请联系开发团队。”
  3. 但是,此通配错误消息对于开发人员和用户似乎也没有那么有用。

我不确定如何正确处理异常并将异常响应尽可能多地反馈给API客户端。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)