1.5 Cómo hacer depuración o debugging y corregir errores

Hacer una depuración o debigging de nuestro código nos ayuda para corregir errores que hemos detectado en la ejecución de la aplicación, nos permite poner un punto de interrupción, correr la aplicación paso a paso para ver el proceso línea por línea, ejecutar hasta el siguiente punto de interrupción y básicamente nos permite encontrar Bugs en nuestro código.

Para hacer la depuración presionamos el botón “Debug app” es el que tiene el insecto que parece un escarabajo.

Debug - Curso Android - mejorprogramacion.com

En nuestro dispositivo nos aparecerá una advertencia que nos dice si queremos continuar con el debugging, simplemente lo dejamos continuar sin presionar nada desaparecerá solo.
Debug - Curso Android - mejorprogramacion.com

En Android Studio los botones Stop y Apply Changes (rayo amarillo) se activarán y significan detener la depuración y aplicar cambios realizados durante la misma, respectivamente.

Debug - Curso Android - mejorprogramacion.com

Existen los errores no controlados que nos detienen la ejecución de la aplicación porque encuentran un fallo y no se puede avanzar más allá, de estos errores nos damos cuenta cuando por ejemplo presionamos un botón y la aplicación se detiene sin más.

Debug - Curso Android - mejorprogramacion.com
También existen los errores controlados que cuando se llega a un punto especifico y no se cumplen las condiciones óptimas para la secuencia correcta de la aplicación, le decimos que nos muestre un mensaje en pantalla, y de ésta manera la ejecución de la aplicación no se detiene, si no que regresa a un punto que nosotros le indicamos; Esto se logra verificando el valor de una variable y si no tiene el valor adecuado mostramos un mensaje, pero también pueden ocurrir eventos que no podemos controlar directamente y necesitamos que si hay algún problema no se detenga la ejecución total de la aplicación que se hace colocando nuestra función dentro de un bloque Try-Catch que lo que hace es tratar de ejecutar el código que está dentro del bloque Try, si no hay errores sigue con la ejecución normal pero se sucede algo inesperado, algo que no se puede procesar, en ese momento se detiene la ejecución de ese código y pasa directamente al bloque Catch que nos da información del error ocurrido y donde generalmente mostramos un mensaje con la descripción del error, pero que también podemos enviar a otras funciones o simplemente ignorarlo y dejar correr el resto del código.

En éste caso al presionar un botón mostraremos un mensaje que nos diga que un proceso se realizó con éxito, vamos a convertir un texto a numero.

Debug - Curso Android - mejorprogramacion.comDebug - Curso Android - mejorprogramacion.com

Aquí verificamos que la variable tenga valor y como no tiene mostramos el mensaje que no se pudo convertir.

Debug - Curso Android - mejorprogramacion.comDebug - Curso Android - mejorprogramacion.com

En éste otro tratamos de hacer la conversión de la variable que tiene valor nulo o una letra a numero entero, pero como eso no se puede hacer nos detendrá la aplicación.

Debug - Curso Android - mejorprogramacion.com

Debug - Curso Android - mejorprogramacion.com

Cuando nuestra aplicación se detiene y no sabemos por qué (si ejecutamos en dispositivo, éste debe estar conectado) en la ejecución de la aplicación cuando ocurre un error no controlado nos muestra toda la información de lo que ocurrió y también la línea donde ocurrió, para dirigirnos a esa área a buscar el problema.

Debug - Curso Android - mejorprogramacion.com

En éste caso nos dice la tercera línea de color rojo la Exception, es decir, el problema ocurrido que el valor “e” no es un tipo de datos entero válido, por lo tanto no se puede convertir, por otro lado nos dice también que ocurrió en el evento “onClick” en la línea “30” del Activity “MainActivity” (marcado de color azul).

Si no es posible encontrar la falla a simple vista, probablemente se trate de un error con los valores que se están manejando, para revisarlo ponemos un punto de interrupción en la línea donde sucede el problema y iniciamos la depuración.

En ésta imagen podremos observar la depuración con el punto de interrupción en la línea 31 y aquí nos damos cuenta que la variable Texto que es la que toma el valor del EditText contiene la letra “e” que por supuesto no se puede convertir a número.

Debug - Curso Android - mejorprogramacion.com

El mismo ejemplo pero con el código de la conversión dentro de un bloque Try-Catch que tomará el error y lo mostraremos en un mensaje.

Debug - Curso Android - mejorprogramacion.com

Debug - Curso Android - mejorprogramacion.com