Возможный дубликат:
python: следует ли использовать ValueError или создать собственный подкласс для обработки недопустимых строк?
Чтение Встроенные исключения Я читал:
Все определяемые пользователем исключения также должны быть получены из этого класса "в отношении исключения".
Я также вижу ValueError, в котором говорится:
Поднят, когда встроенная операция или функция получает аргумент, который имеет правильный тип, но недопустимое значение, и ситуация не описывается более точным исключением, например IndexError.
Если я хочу создать исключение для недопустимых аргументов (эквивалент Ruby ArgumentError), что мне делать? Должен ли я поднимать ValueError
напрямую или предпочтительно подкласс ValueError с моим собственным намерением, отображающим имя?
В моем случае я принимаю ключевой аргумент, но я хочу ограничить набор символов в ключе, так что принимается только /\A[\w.]+\Z/
(регулярное выражение Perl/Ruby).