clean code - error handling

Post on 09-Feb-2017

435 Views

Category:

Engineering

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Clean Code – Error HandlingAlejandro Bermúdez Holguín16

Feb 2016

Manejo de errores disperso

Muchos códigos están completamente dominados por el manejo de errores.

No significa que esté mal hacer manejo de errores, sino que es imposible ver qué hace el código si el manejo de errores está disperso.

El manejo de errores es IMPORTANTE, pero si oscurece la

lógica, está INCORRECTO.

Usar excepciones en lugar de códigos de retorno

En el pasado habían muchos lenguajes que no tenían excepciones.

Las técnicas para manejar y reportar errores eran limitadas, comúnmente se usaba:

Banderas de error Retornar un código de error.

Ejemplo Manejo de errores por log.

Ejemplo Manejo de errores por excepciones

Escribe primero try-catch-finally

Las excepciones definen un alcance.

El código se ejecuta en la porción try, se indica que el código puede abortar en cualquier punto y resumirse en el catch.

Escribe primero try-catch-finally

El try se puede entender como transacciones.

El catch deje dejar el programa en un estado consistente sin importar

qué pase en el try.

El finally debe realizar tareas que deben ser

ejecutadas independientemente del comportamiento

de errores.

Escribe primero try-catch-finallyEmpezar con pruebas unitarias en códigos que posiblemente arrojen una excepción es una buena práctica.

Método creado:

Escribe primero try-catch-finally

El test anterior falla debido a que no arroja una excepción, ahora:

Escribe primero try-catch-finallyCon la excepción que necesitamos, hacemos un refactor del código.

Proporcionar un contexto con excepciones

Crea mensajes de error informativos, y pásalos con tus excepciones.

Menciona la operación que falló y el tipo de falla.

Si se está usando logging en tu aplicación, añade suficiente para ser capaz de hacer un seguimiento del error en el catch.

Definir clases de excepción en función de las necesidades de la persona que llama

Las excepciones se pueden clasificar por su fuente o su tipo:

Fallas de dispositivo Fallas de red Errores de programa

Ejemplo simplificación

Contiene duplicados

Ejemplo simplificaciónLa clase LocalPort se encarga del manejo de excepciones

No retornes nullEjemplo:

No retornes null – ejemplo 2

Cambiando esto:

ConclusiónEl código limpio es legible, pero debe ser también robusto.Podemos escribir código limpio y robusto si vemos el manejo de errores como un asunto separado.Algo que es visible independientemente de nuestra lógica principal.

En la medida que somos capaces de hacer eso, se puede razonar sobre ello de manera independiente, y podemos hacer grandes avances en la mantenibilidad de nuestro código.

Muchas Gracias.

top related