2010-10-28 1 views

ответ

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 

Контраст этого с TypeError, которая возникает, когда тип неверен:

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

Я думаю, что я хотел бы сделать класс исключения, чтобы поднять в этом случае, так как его очень специфический тип исключения. Вы можете легко расширить класс ValueError:

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

+1 для большинства ответов Pythonic – smci

Смежные вопросы