17

如果您想添加一个未提供的额外检查argparse,例如:

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

……可以养活ArgumentError自己吗?

或者,你应该加注Exception吗?

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

4

1 回答 1

22

引发 ArgumentError 本身并没有错。您可以在收到的参数与您预期的不同时使用它,包括检查数字范围。

另外,是的,一般来说,如果您正在编写该库的扩展,则可以使用给定库提供的相同异常。

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

于 2011-11-28T08:48:06.553 回答