如果某个列表的大小不是某个值的倍数,我应该引发什么类型的错误?
考虑以下代码片段:
def func(x: []):
if ( len(x) % 2) != 0:
raise WhatError("?")
# ...
我考虑过 TypeError、ValueError 和 IndexError,但我认为其中任何一个都不适合我的问题。 是否有针对此类问题的错误类型,还是我应该硬着头皮使用其中一种?
请您参考如下方法:
列表的元素个数是其值的一部分,所以,在这3个中,ValueError是最合适的。如果 TypeError 不是列表/可迭代对象,则它是合适的,而 IndexError 通常在尝试访问 x[i] 元素时使用,并且该列表的大小错误。
