如果您想添加argparse
未提供的额外支票,例如:
if variable a == b then c should be not None
......是否允许自己提出ArgumentError
?
或者,您应该提出Exception
吗?
这种情况的常见做法是什么?假设你添加了一段几乎像库的本地扩展的代码。您是否应该使用与您正在扩展的库提供的异常类型相同的异常类型?
答案 0 :(得分:19)
引发ArgumentError没有任何内在错误。您收到的参数不符合预期,包括检查数字范围,您可以随时使用它。
另外,是的,一般情况下,如果您正在为该库编写扩展名,则可以使用给定库提供的相同例外。
关于提出Exception
,我不会这样做。您应该始终引发一个特定的异常,以便您知道如何在代码中处理它。捕获Exception
对象应该在应用程序的最高级别完成,以捕获并记录您错过的所有异常。