Si sale, hará que el flujo se interrumpa y vuelva hacia las capas superiores. Una Domain exception ocurre cuando algo en el Domain no cumple las normas.
Especificaciones
Las Exceptions por naturaleza se crean y como mucho se le pasan valores para rellenar un mensaje, por eso le damos una complejidad de 1.
Una Exception sólo tiene una misión principal. Interrumpir el flujo y dar contexto al que lo vigila. Es lo que llamaríamos un error controlado.
Sus características son bastante sencillas. Interrumpe el flujo y aporta información al que lo está esperando. Los mensajes de las Exceptions cuanto más completos sean a nivel de información, mejor nos irá si decidimos loguearlo.
Se relaciona con los que habitualmente esperan su llegada, como son los Command / Query REST controllers y los Console command.
Cómo gestionar las excepciones
Existen varias estrategias para gestionar una ruptura de flujo. La ideal es que dichas excepciones las capture el Controller y actúe en consecuencia según las necesidades del User que ha iniciado el proceso.
Si se captura antes, hay que ir con cuidado, ya que el tema se complica con escalado de Exceptions o cambios de comportamiento, con lo que es mejor evitarlo, ya que en un escalado de excepciones se puede perder el origen del problema que ha iniciado el proceso..
¿Qué valor me aporta implementar un Domain exception?
-
El valor real de una excepción es poder dar visibilidad de un error de forma concreta y específica.
-
Una Exception nos da la oportunidad de ofrecer un comportamiento más controlado y previsible al User. Separando errores esperados de los no esperados.
¿Cómo se expresa esta carta en el mundo real?
Como indica el icono de arriba a la izquierda, corresponde a una clase, pero también a una carpeta (por ejemplo, una carpeta llamada Exceptions dentro de la carpeta Domain)
|
|