Propagación de excepciones – Sistemas Distribuidos e Internet – ¿Qué trataremos?



Propagación de excepciones – Sistemas Distribuidos e Internet – ¿Qué trataremos?

0 0


presentacionSDI

Presentación del trabajo en grupo de SDI

On Github belaustegui / presentacionSDI

Propagación de excepciones

Sistemas Distribuidos e Internet

Universidad de Oviedo

¿Qué trataremos?

Los tipos de excepciones que pueden aparecer en un sistema distribuido y ofreceremos estrategias para su gestión.

  • Excepciones de capa de persistencia.
  • Excepciones de lógica de negocio.
  • Excepciones de autorización de acceso.

¿Qué añadiremos al proyecto?

Nuevas BusinessException.

  • Más concretas.
  • EntitiyNotFound, EntityAlreayExists,...
  • No hacen excesiva falta, con un mensaje en BusinessException es suficiente en general.

Una clase de Log.

  • Singleton transversal al proyecto.
  • Podemos usar Log4J, el más usado en Java.
  • Nos permite definir varios niveles de prioridad.

Excepciones

  • Excepciones de capa de persistencia.
  • Excepciones de lógica de negocio.
  • Excepciones de autorización de acceso.

Excepciones de capa de persistencia

¿Qué hacemos cuando hay un error en una consulta a la base de datos o en la propia BD?

¿Cómo debemos reaccionar?

  • Tratar como error de programación.
  • Tiraremos una RuntimeException.
  • Podemos crear una nueva Exception o usar SQLException.
  • Muy feo, y poco seguro.
  • Cambiamos la página de error por defecto.
  • Si estamos en fase de desarrollo se puede mantener.

¿Cómo sabemos ahora si hay un error o no?

  • Guardamos en log, con importancia "ERROR".
  • Se podría enviar un aviso vía mail cuando suceda.
  • El usuario seguirá viendo algo chulo:

Excepciones

  • Excepciones de capa de persistencia.
  • Excepciones de lógica de negocio.
  • Excepciones de autorización de acceso.

Excepción de lógica de negocio

¿Que hacemos cuando hay un error en la capa de lógica?

Son producidas por...

Normalmente, errores en la concurrencia.

¿Cómo podemos reaccionar?

  • Podemos crear una nueva excepción que derive de IllegalStateException.
  • Podemos llevar al usuario a la página anterior, y avisarle del error.

¿Cómo las recuperamos?

  • Puesto que no son graves, no es necesario guardarlos en un log.
  • Aunque se pueden guardar con importancia "WARN" si quisiésemos.

Excepciones

  • Excepciones de capa de persistencia.
  • Excepciones de lógica de negocio.
  • Excepciones de autorización de acceso.

Excepción de autorización

¿Que hacemos cuando un usuario hace algo que no tiene permitido?

Son provocadas por...

  • Generalmente,errores del usuario.
  • Aunque a veces, usuarios con malas intenciones.

¿Cómo NO se debe avisar?

El error ofrece demasiada información.

¿Como SI se puede avisar?

No revelamos información de más.

También puede hacerse una redirección a otra página.

¿Cómo las detectamos?

  • Guardamos en un log, con importancia "WARN". Algunos, no todos, como los intentos de acceso a sitios no permitidos.
  • Podemos implementar algún filtro anti-XSS que notifique ataques en el log.
  • Revisamos el log para detectar ataques maliciosos.

Conclusión

  • Las excepciones no se deben pasar por alto
  • Es importante mantener un log con posibles errores
  • Hay que controlar qué información de error llega al usuario

FIN

Álvarez Belaustegui, Cristian

López García, Bruno

Meana Llorián, Daniel