为testcase引发什么异常:字符串长度>;价值?-python
我正在做一些测试,在某些情况下我会得到一些提升,比如:为testcase引发什么异常:字符串长度>;价值?-python,python,exception,exception-handling,raise,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, st
@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
从python文档中:
异常值错误
当内置操作或函数接收到具有正确类型但值不正确的参数,并且该情况未由更精确的异常(如Indexer Ror)描述时引发
因此,听起来您想要ValueError
,除非您想定义自己的自定义异常类。来自python文档:
异常值错误
当内置操作或函数接收到具有正确类型但值不正确的参数,并且该情况未由更精确的异常(如Indexer Ror)描述时引发
因此,除非您想定义自己的自定义异常类,否则听起来您需要
ValueError
。请注意,在Python中不鼓励验证参数类型,除非您正在应用类型注释。(在这种情况下,不需要在自己的代码中显式地进行验证。)请注意,在Python中不鼓励验证参数类型,除非应用类型注释。(在这种情况下,不需要在自己的代码中显式地执行此操作。)