如果我有一个带有2个可选参数的python函数(对于搜索条件)但没有提供任何一个(我需要至少一个参数)什么是正确的抛出异常?
如果我只需要传递两个参数中的一个怎么办?如果提供两个,会抛出什么例外?或者可能会创建两个不同的函数?
答案 0 :(得分:4)
TypeError是最合适的 - 这是你经常得到的。
答案 1 :(得分:4)
你可以找到内置Python exceptions here的列表,但是请记住,如果这些都不符合您的要求,您可以随时创建自己的异常。
我建议使用 TypeError (这是您通常在使用的Python代码中看到的)。您还可以使用 AssertionError ,并声明至少应该为该函数提供一个参数。
答案 2 :(得分:3)
我会抛出信息丰富的TypeError
:
if no_args or both_args:
raise TypeError('f() must be passed exactly one of foo=value, bar=value')
答案 3 :(得分:3)
为什么不使用断言?
assert len(args) > 1, "At least one argument should be passed to the function"