用手提出ArgumentError是不好的形式?

Rom*_*her 15 python exception-handling argparse

如果要添加未提供的额外检查argparse,例如:

if variable a == b then c should be not None 
Run Code Online (Sandbox Code Playgroud)

......允许ArgumentError自己提升吗?

或者,你应该提高Exception吗?

这种情况的常见做法是什么?假设你添加了一段几乎像库的本地扩展的代码.您是否应该使用与您正在扩展的库提供的异常类型相同的异常类型?

Pau*_*nta 19

引发ArgumentError没有任何内在错误.您收到的参数不是您期望的参数,包括检查数字范围,您可以随时使用它.

此外,是的,一般情况下,如果您正在为该库编写扩展,则可以使用给定库提供的相同异常.

关于提高Exceptions,我不会这样做.您应该始终引发一个特定的异常,以便您知道如何在代码中处理它.捕获Exception对象应该在应用程序的最高级别完成,以捕获并记录您错过的所有异常.