【发布时间】:2019-07-02 17:59:00
【问题描述】:
对于如何在 python 中捕获异常,我是个新手。我对这两种捕获异常的方法有疑问。我只找到了有关here 的ValidationError 的有用信息
但我不太明白它是否可以在 django 之外使用,或者我可以预期的错误消息是什么。我看到了这个关于类型验证的代码示例。
except (TypeError, ValueError) as error:
LOGGER.error('Error e.g.', exc_info=True)
except ValidationError:
LOGGER.error('Error e.g', exc_info=True)
所以对于我来说TypeError 和ValueError,很明显:
异常值错误
当操作或函数接收到具有正确类型但值不适当的参数时引发,并且该情况没有由更精确的异常(例如 IndexError)描述。
异常类型错误
当操作或函数应用于不适当类型的对象时引发。关联的值是一个字符串,提供有关类型不匹配的详细信息。
总之,
我试图了解ValidationError 的第二个代码的优势是什么,但这可能会很棘手,因为我没有找到好的文档。如果有人可以分享有关 ValidationError 的知识,我将不胜感激,
我提出这个问题是因为我要使用相关的库,我还没有看到异常被这样处理。
https://pypi.org/project/related/
感谢社区!
【问题讨论】:
-
您可能不清楚的地方:
TypeError和ValueError内置于 Python 中。但是库可以并且经常会定义自己的异常。ValidationError来自您正在使用的库。 -
要搜索异常,您应该查看库的文档而不是异常,因为它本身没有文档
-
@Anonymous 是的,我提出这个问题是因为我开始了解一个名为related 的新库,以便进行验证pypi.org/project/related
-
@may OK 那么你就可以看到文件中的异常并找到语句
-
引发验证错误
标签: python django exception error-handling django-validation