What exception to throw? (Python)
本问题已经有最佳答案,请猛点这里访问。
如果我有一个具有两个可选参数的python函数(用于搜索条件),但没有提供任何参数(我至少需要一个参数),那么抛出什么是正确的异常?
如果只需要传递两个参数中的一个呢?如果提供两个异常,抛出什么?或者可以创建两个不同的函数?
您可以在这里找到内置python异常的列表,但请记住,如果这些异常都不符合您所追求的,您可以始终创建自己的异常类型。
我建议使用typeerror(这是您通常在使用的python代码中看到的)。您还可以使用断言错误,并断言至少应向函数提供一个参数。
类型错误是最合适的-这是你通常得到的。
为什么不使用断言呢?
1 | assert len(args) > 1,"At least one argument should be passed to the function" |
我会抛出一个信息丰富的
1 2 | if no_args or both_args: raise TypeError('f() must be passed exactly one of foo=value, bar=value') |