Duplicar posible:
python: Should I use ValueError or create my own subclass to handle invalid strings?¿Cómo se indican los argumentos inválidos en Python?
lectura Built-in Exceptions leí:
Todas las excepciones definidas por el usuario también debe ser derivado de esta clase" en lo que respecta a excepción
.
También veo un ValueError que dice:
elevada cuando un sistema incorporado en la operación o función recibe un argumento que tiene el tipo correcto, pero un valor apropiado, y la situación no se describe por una excepción más precisa, como IndexError.
Si deseo presentar una excepción para los argumentos inválidos (el equivalente al ArgumentError de Ruby), ¿qué debo hacer? ¿Debería subir ValueError
directamente, o preferiblemente la subclase ValueError con mi propia intención de revelar el nombre?
En mi caso, acepto un argumento clave, pero quiero restringir el conjunto de caracteres en la clave, de manera que solo se acepta /\A[\w.]+\Z/
(expresión regular Perl/Ruby).
¿Tiene sentido subclasificar ValueError de modo que el nombre de la excepción revele la intención, por ejemplo, clase InvalidKeyError (ValueError)? –