En la mayoría de los casos, es posible detectar excepciones en Java, incluso sin marcar. Sin embargo, no es necesariamente posible hacer algo al respecto (por ejemplo, memoria insuficiente).¿Cuándo se debe dejar que una aplicación se cuelgue debido a una excepción en Java (problema de diseño)?
Para otros casos, el problema que estoy tratando de resolver es el principio de diseño. Estoy tratando de establecer un principio de diseño o un conjunto de reglas que indiquen cuándo se debe renunciar a una situación excepcional, incluso si se detecta a tiempo. El objetivo es tratar de no bloquear la aplicación tanto como sea posible.
¿Alguien ya ha hecho una lluvia de ideas y se ha comunicado al respecto? Estoy buscando casos genéricos específicos y posibles soluciones, o reglas generales.
ACTUALIZACIÓN
Sugerencias hasta ahora:
- dejar de correr si coherencia de los datos puede verse comprometida
- parada corriendo si los datos se pueden eliminar
- sigan publicando, aunque no se puede hacer cualquier cosa al respecto (Sin memoria ...)
Detener la ejecución si el servicio de clave no está disponible o beco MES disponible y no se puede reiniciar
Un método/servicio debe comprobar si puede cumplir con su deber de un estado estable, si no que debe informar al usuario (log) y no hacer nada
- Si la aplicación debe ser detenido , se degradan con tanta gracia como posibles
- Use reversiones en las transacciones db
- excepciones personalizadas se pueden utilizar para dar consejos sobre cómo resolver la situación en handler
- Entrar tanta información relevante como sea posible
- Notificar a los desarrolladores
estado del coto y coherencia de los datos lo más que puede
soluciones rápidas puede ser perjudicial, cuando la depuración, mejor dejar que el bloqueo de la aplicación y analizar en detalle lo que lo causó
Si su aplicación es importante (por ejemplo, el servidor de pilotaje de una planta) su aplicación debe 1) de teléfono de la persona que tendrá que solucionarlo 2) ejecutar la medida en que está seguro de no borrar todo (coherencia de los datos puede casi nunca será comprometida). –
Idealmente, su aplicación nunca debería fallar. Sin embargo, su aplicación debe fallar con elegancia cuando falta un componente como una base de datos o una cámara o no se puede acceder a él. –
Hubiera pensado que, para un montón de RuntimeExceptions serias, no tendrías ninguna opción sobre si dejas que se cuelgue, a menos que envuelvas el código de apertura en un bloque try ... catch. –