我正在寻找相当于PHP的InvalidArgumentException,以便在函数获取具有不正确类型的参数时使用。我正在使用Python 3.(我对Python很新。)
ValueError
documentation声明“具有正确类型但价值不合适的论点”,因此不适合在此处使用。
TypeError
documentation个“当一个操作或函数应用于不适当类型的对象时引发”,因此似乎也不适用。
在我的情况下使用的正确错误类型是什么?
答案 0 :(得分:3)
在你的情况下,我会选择TypeError
。
函数应用于不适当类型的对象可以理解为传递错误类型的参数(函数应用到其参数中)。
例如,len(42)
会引发TypeError
,因为len()
无法应用于某个数字。
答案 1 :(得分:2)
int([])
#>>> Traceback (most recent call last):
#>>> File "<string>", line 88, in <module>
#>>> File "", line 1, in <module>
#>>> TypeError: int() argument must be a string or a number, not 'list'
这不是你想要的那种错误吗?
请注意,类型检查是不明智的,因为如果它不支持所需的接口并且不检查允许鸭子输入,它会抛出错误。
答案 2 :(得分:0)
这里是一种检查类型是否不匹配的快速方法:
def my_function(my_word: str):
if type(my_word) != str:
raise Exception("Whatever exception you want to raise!")
pass