要在Python异常消息中放入详细信息的约定?

Mik*_*ers 7 python exception conventions

我正在尝试确定如何编写异常消息的一些指导原则.

例如,让我们假设一个假设函数必须接收一个恒定数量的字节(作为一个bytes对象),我们称之为[1, 2, 3].以下是所有可能的例外情况:

1. TypeError
2. TypeError: argument must be 16 bytes
3. TypeError: argument must be 16 bytes; got 'list'
4. TypeError: argument must be 16 bytes; got 'list' [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

一般来说,我觉得这个消息应该总是解释未满足的条件,但是我想知道要包含多少关于违规对象的信息.

关于这个问题有没有指导方针?

myu*_*uf3 2

很好的问题!

当我通常创建自定义异常时,我通常会查看 Python 集,它通常是详尽的。

现在至于提供多少细节的问题,我不会让它们太具体,因为你不知道什么会触发它们或导致它们。

在示例中:

TypeError: unsupported operand type(s) for +: 'int' and 'str'
Run Code Online (Sandbox Code Playgroud)

描述性足以让我知道该+运算符不受支持,我不需要知道字符串包含什么。

所以在你的例子中,前两个完全没问题,后两个在我看来是矫枉过正的。

祝你好运。