【问题标题】:Is it bad form to raise ArgumentError by hand?手动提出 ArgumentError 是不好的形式吗?
【发布时间】:2015-03-12 20:49:43
【问题描述】:

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

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

...可以自己提出ArgumentError吗?

或者,您应该改为提高Exception 吗?

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

【问题讨论】:

标签: python exception-handling argparse


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 2016-08-05
    • 2017-01-14
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    相关资源
    最近更新 更多