Clean Code - Error Handling
-
Upload
alejandro-bermudez-holguin -
Category
Engineering
-
view
452 -
download
2
Transcript of Clean Code - Error Handling
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.