如果给定的字符串与某些格式不匹配,会引发哪个异常?

hel*_*hod 3 python exception-handling

这是对旧问题的跟进.

给定一个ISBN号,例如3-528-03851-5,如果传入的字符串与格式X-XXX-XXXXX-X不匹配,我应该提出哪种例外类型?

Dav*_*ver 6

提高一个ValueError.

这几乎是说"你给了我一个没有意义的价值"的标准方式.例如:

>>> int("a")
Traceback (most recent call last):
  File "", line 1, in 
ValueError: invalid literal for int() with base 10: 'a'
>>> import shlex; shlex.split("'")
Traceback (most recent call last):
   ...
ValueError: No closing quotation

将此与a对比TypeError,在类型不正确时引发:

>>> d = {}
>>> d[{}]
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unhashable type: 'dict'