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

2024-06-17 17:46:26 发布

您现在位置:Python中文网/ 问答频道 /正文

这是older question的后续操作。在

给定ISBN编号,例如3-528-03851-5如果传入的字符串与格式X-XXX-XXXXX-X不匹配,我应该引发哪种异常类型?在


Tags: 字符串类型格式编号xxxquestionisbnxxxxx
3条回答

引发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

TypeError形成对比,后者在类型不正确时引发:

^{pr2}$

我想我应该在这个实例中创建一个异常类,因为它是一种非常特殊的异常类型。可以很容易地扩展ValueError类:

class ISBNFormatException(ValueError):
    """Raised when an invalid ISBN format is found"""
    pass

ValueError可能是最合适的选择。根据它的文档,它是指一个值具有正确的类型,但不合适的值。在

http://docs.python.org/library/exceptions.html#exceptions.ValueError

相关问题 更多 >