如果用户传递不同长度的参数,那么ValueError是一个适当的异常,这意味着相同吗?

Gar*_*ary 12 python exception

在函数中,我想确保参数a和b具有相同的长度.如果不遵守,我想为此提出异常.我知道ValueError用于异常,其中参数本身不符合某些特定条件.在这种情况下,如果条件在参数之间,那么ValueError是一个适当的错误吗?如果没有,任何标准的Python异常更合适吗?

def func(a, b):
    if len(a) != len(b):
        raise ValueError("list a and list b must have the same length")
Run Code Online (Sandbox Code Playgroud)

nij*_*kim 10

正如加里在评论中指出的那样,ValueError是合适的选择.

IndexError如Wikiii122所建议的那样,另一个有竞争者.但是,根据Python文档,

exception IndexError

当序列下标超出范围时引发.(切片索引被静默截断以落在允许的范围内;如果索引不是普通整数,则会引发TypeError.)

如果您不费心提出异常,这可能会引发什么,但不像ValueError其文档那样具有描述性:

exception ValueError

当内置操作或函数接收到具有正确类型但不适当值的参数时引发,并且情况不会由更准确的异常(如IndexError)描述.

  • 当您输入 TypeError 时,您指的是 ValueError 吗? (2认同)