verificadas tipos propagacion manejo excepciones java exception-handling

tipos - propagacion de excepciones en java



Excepciones no verificadas en Java: ¿Heredar de Error o RuntimeException? (4)

Creo que los JavaDocs lo dicen todo:

Un Error es una subclase de Throwable * que indica problemas graves que una aplicación razonable * no debe intentar detectar. La mayoría de esos errores son condiciones anormales. * El error ThreadDeath , aunque es una condición "normal", * también es una subclase de Error porque la mayoría de las aplicaciones * no deberían intentar atraparlo.

Estas son cosas como stackoverflow, sin memoria ... desea extender RuntimeException.

Me gustaría manejar los errores con excepciones (sin marcar). Llamé que para cada tipo de excepción debería crear una subclase de Error o RuntimeException. ¿Cual es la diferencia?


RuntimeException es un tipo especial de Exception, excepciones que el compilador no detectará. El error es algo que se produce cuando hay algún problema grave del sistema. No hay una relación estrecha entre Error y RuntimeException. Los tuyos parecen más cercanos a RuntimeException.


Errors deben identificar problemas irrecuperables en el programa (por ejemplo, falta de memoria). Exceptions deberían identificar problemas recuperables por programación que son causados ​​por condiciones inesperadas fuera del control del código (p. Ej. Base de datos inactiva). RuntimeExceptions debería identificar problemas recuperables por programación que son causados ​​por fallas en el flujo de código (léase: fallas del desarrollador tales como puntero nulo, argumento ilegal, etc.).

En tu caso, quieres heredar de RuntimeException .


Siempre use RuntimeException: prácticamente nunca he visto un caso de error.

Sin embargo, he escuchado lo mismo acerca de crear tu propia excepción y realmente no lo entiendo. A menudo es útil, pero utilizo InvalidArgumentException TODO EL TIEMPO.