【发布时间】:2019-06-19 03:32:37
【问题描述】:
在 django 中,异常 IntegrityError 可能由多种原因引起。
有时这个错误意味着一个独特的冲突。有时这可能是由某些外键检查引起的。
目前我们只能通过将异常转化为文本来知道根本原因:
(1062, "Duplicate entry '79d3dd88917a11e98d42f000ac192cee-not_created' for key 'fs_cluster_id_dir_e8164dce_uniq'")
但这对于程序识别是非常不友好的。代码有没有办法识别异常的根本原因?
例如,如果我知道这是由一个独特的冲突引起的,我可以告诉客户端这是因为一些资源已经存在而引起的。如果我知道这是由于外键不存在造成的,我可以告诉客户端这是由于某些父资源未创建造成的。
那么有什么好的方法可以通过代码来识别原因吗?
【问题讨论】:
-
那个答案只告诉我如何缓存和转换成短信。我想知道通过代码识别错误类型(唯一冲突,外键不存在)的任何方式
-
没有
e.__cause__返回那个细节吗?
标签: django