05 Curso Go – Errores

blog-image

Curso Go: Parte 5

Bienvenidos de nuevo, en esta entrega del curso vamos a aprender a trabajar con errores , parte fundamental en nuestras aplicaciones en GO si queremos proporcionar robustez a nuestro código y poder llevar un seguimiento de los errores que se producen durante la ejecución de nuestros programas.

En la parte anterior aprendimos a trabajar con objetos , si no lo has visto te recomendamos ir para ampliar el conocimiento en este lenguaje de programación. 

https://blog.ironchip.net/2019/04/16/04-curso-go-orientado-a-objetos/

Paquete Errors

En la linea 9 podemos ver que importamos la libreria pkg/errors.

En la linea 20 podemos ver que si a la hora de abrir el fichero nos salta un error , envolvemos este error con un mensaje de error de apertura del fichero.

Podemos observar en la linea 44 que si la función anterior nos ha dado error lo guardamos en un fichero log para poder analizarlo mas adelante.

Panic y recuperaion

En esta parte vamos a ver el uso de la funcion panic() , esta funcion la utilizaremos si tras un error , no se puede seguir con la ejecucion del programa , como podemos ver en la linea 28.

Si salta un panic , podemos hacer uso de la funcion recover() que en vez de terminar la ejecucion del programa , seguira con esta , indicando que el programa ha fallado. Hay que utilizar esta funcion de una forma correcta , mediante defer() (Como aprendimos en la parte 3 de este curso) como podemos ver en las lineas [9,13]

Challenge: Errores

Una vez visto unos usos de los errores se plantea el siguiente reto:

Hacer una funcion llamada killServer() a la que le pasamos el nombre de un fichero con pid y devuelve un error. Utilizar la funcion ioutil.ReadFile() para leer el fichero, la funcion strconv.Atoi() para convertir el contenido del fichero a un Integer.

Imprimir “kill PID” con cada pid del fichero. Pensar que errores pueden ocurrir y actuar conforme a ello.

Conclusión

En esta quinta parte hemos aprendido una parte importante de la programación en GO que se trata de los errores y su funcionamiento. Un buen programa en GO debe contemplar todos los errores posibles y como actuar ante ellos para aportar robustez a nuestro programa.

En la siguiente entrega veremos canales , concurrencia , con el fin de crear múltiples hilos que hagan una ejecución mucho mas eficiente de nuestro programa.

OS ESPERAMOS!!