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

时间:2011-11-28 08:40:42

标签: python exception-handling argparse

如果您想添加argparse未提供的额外支票,例如:

if variable a == b then c should be not None 

......是否允许自己提出ArgumentError

或者,您应该提出Exception吗?

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

1 个答案:

答案 0 :(得分:19)

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

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

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