为测试用例引发什么异常:字符串长度>值? - Python

时间:2018-03-06 19:42:03

标签: python exception exception-handling raise

我正在做一些测试,在某些情况下我有一些提升,例如:

@staticmethod
def concat_strings(string1, string2):
    if type(string1) is not str or type (string2) is not str:
        raise TypeError
    return string1 + string2

@staticmethod
def concat_3strings(string1, string2, string3):
    if type(string1) is not str or type(string2) is not str or type(string3) is not str:
        raise TypeError
    return string1+string2+string3

现在,如果我想检查字符串的长度是否为10,那么这将是“属性错误”,或者我应该做什么样的加注?为什么那个?

例如:

    @staticmethod
    def concat_2strings_tam(string1, string2):
        if len(string1)>10 or len(string2)>10:
            raise AttributeError
        return string1+string2

1 个答案:

答案 0 :(得分:3)

来自python docs:

  

异常ValueError

     

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

所以听起来你想要ValueError,除非你想定义自己的自定义异常类。