He estado actualizando una biblioteca existente para generar excepciones que ayuden a mejorar la eliminación de errores por parte de las personas que usan la biblioteca.Java, excepciones específicas de clase frente a excepciones estándar
Al principio, pensé en definir excepciones específicas para cada clase, sin embargo resulta que la mayoría de esas excepciones son simplemente extensiones de excepciones de tiempo de ejecución existentes (por ejemplo, FooNegativeIntArgumentException extends IllegalArgumentException
, FooNullBarException extends NullPointerException
) con mensajes específicos.
¿Cuáles son las ventajas y desventajas de definir nuevas excepciones frente a las existentes? ¿Hay convenciones/mejores prácticas?
Además, dada la necesidad de compatibilidad con versiones anteriores, la mayoría (si no todas) de estas excepciones son excepciones de tiempo de ejecución.
Gracias a las respuestas que proporcionaron detalles de por qué no usar excepciones personalizadas en general, así como los casos en que son realmente útiles. – Carl