El documento describe cómo depurar programas en Java usando el IDE NetBeans. Explica cómo ejecutar un programa instrucción por instrucción, observando cómo cambian los valores de las variables. Proporciona un ejemplo de crear una clase Telegrama para calcular el costo de un telegrama y una clase DemoTelegrama para probarla, depurando la ejecución paso a paso.
0 calificaciones0% encontró este documento útil (0 votos)
113 vistas16 páginas
El documento describe cómo depurar programas en Java usando el IDE NetBeans. Explica cómo ejecutar un programa instrucción por instrucción, observando cómo cambian los valores de las variables. Proporciona un ejemplo de crear una clase Telegrama para calcular el costo de un telegrama y una clase DemoTelegrama para probarla, depurando la ejecución paso a paso.
El documento describe cómo depurar programas en Java usando el IDE NetBeans. Explica cómo ejecutar un programa instrucción por instrucción, observando cómo cambian los valores de las variables. Proporciona un ejemplo de crear una clase Telegrama para calcular el costo de un telegrama y una clase DemoTelegrama para probarla, depurando la ejecución paso a paso.
El documento describe cómo depurar programas en Java usando el IDE NetBeans. Explica cómo ejecutar un programa instrucción por instrucción, observando cómo cambian los valores de las variables. Proporciona un ejemplo de crear una clase Telegrama para calcular el costo de un telegrama y una clase DemoTelegrama para probarla, depurando la ejecución paso a paso.
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 16
ITSON Manuel Domitsu Kono
Depuracin de Programas en Java
con el IDE NetBeans
La mayora de las herramientas de desarrollo de software modernas, el IDE NetBeans para Java incluido, tienen integrado un depurador. Un depurador es un mdulo de software que permite ejecutar un programa instruccin por instruccin, ejecutarlo hasta cierta instruccin o en su totalidad. Tambin nos permite observar cmo cambia el valor de las variables del programa conforme se van ejecutando sus instrucciones.
Ejecucin de un Programa Instruccin por Instruccin
Para ejecutar un programa instruccin por instruccin se sigue el siguiente procedimiento:
1. Utilizando la herramienta de desarrollo NetBeans, cre un proyecto llamado telegrama.
2. Haga que este proyecto sea el proyecto principal y establezca el nombre de la clase principal a DemoTelegrama dentro del paquete pruebas.
3. Cree una clase llamada Telegrama dentro del paquete objetosNegocio y edite el cdigo de la clase Telegrama como se muestra en el siguiente listado:
Telegrama.java / * * Tel egr ama. j ava */ package obj et osNegoci o;
/ ** * Est a cl ase per mi t e cal cul ar el cost o de un t el egr ama. * * @aut hor mdomi t su */ publ i c cl ass Tel egr ama {
pr i vat e f i nal doubl e COSTO_ORDI NARI O = 25. 0; pr i vat e f i nal doubl e COSTO_URGENTE = 40. 0; pr i vat e f i nal doubl e COSTO_ADI CI ONAL_ORDI NARI O = 2. 5; pr i vat e f i nal doubl e COSTO_ADI CI ONAL_URGENTE = 4. 0; pr i vat e St r i ng t i poTel egr ama; pr i vat e i nt numPal abr as; pr i vat e doubl e cost o;
/ ** 2 Depuracin de Programas en Java con el IDE NetBeans ITSON Manuel Domitsu Kono * Const r uct or de l a cl ase. I ni ci al i za l os at r i but os de l a cl ase al * val or de sus par amet r os * @par amt i poTel egr ama Ti po de t el egr ama: " Or di nar i o" o " Ur gent e" * @par amnumPal abr as Numer o de pal abr as del t el egr ama */ publ i c Tel egr ama( St r i ng t i poTel egr ama, i nt numPal abr as) { t hi s. t i poTel egr ama = t i poTel egr ama; t hi s. numPal abr as = numPal abr as; }
/ ** * Est a f unci on r egr esa el numer o de pal abr as del t el egr ama. * @r et ur n Numer o de pal abr as del t el egr ama */ publ i c i nt get NumPal abr as( ) { r et ur n numPal abr as; }
/ ** * Est a f unci on est abl ece el numer o de pal abr as del t el egr ama. * @par amnumPal abr as Numer o de pal abr as del t el egr ama */ publ i c voi d set NumPal abr as( i nt numPal abr as) { t hi s. numPal abr as = numPal abr as; }
/ ** * Est a f unci on r egr esa el t i po del t el egr ama * @r et ur n Ti po de t el egr ama: " Or di nar i o" o " Ur gent e" */ publ i c St r i ng get Ti poTel egr ama( ) { r et ur n t i poTel egr ama; }
/ ** * Est a f unci on est abl ece el t i po del t el egr ama * @par amt i poTel egr ama Ti po de t el egr ama: " Or di nar i o" o " Ur gent e" */ publ i c voi d set Ti poTel egr ama( St r i ng t i poTel egr ama) { t hi s. t i poTel egr ama = t i poTel egr ama; }
/ ** * Est a f unci on r egr esa el cost o del t el egr ama * @r et ur n Cost o del t el egr ama */ publ i c doubl e get Cost o( ) { r et ur n cost o; }
/ ** * Est a f unci on cal cul a el cost o de un t el egr ama en f unci on de su * t i po y numer o de pal abr as */ publ i c voi d cal cul aCost o( ) { / / Si el t el egr ama es or di nar i o i f ( t i poTel egr ama. char At ( 0) == ' O' | | Depuracin de Programas en Java con el IDE NetBeans 3 ITSON Manuel Domitsu Kono t i poTel egr ama. char At ( 0) == ' o' ) { / / Si el t el egr ama t i ene hast a 10 pal abr as i f ( numPal abr as <= 10) { cost o = COSTO_ORDI NARI O; } / / Si el numer o depal abr as excede a 10 pal abr as el se { cost o = COSTO_ORDI NARI O + COSTO_ADI CI ONAL_ORDI NARI O * ( numPal abr as - 10) ; } } / / Si el t el egr ama es ur gent e el se i f ( t i poTel egr ama. char At ( 0) == ' U' | | t i poTel egr ama. char At ( 0) == ' u' ) { / / Si el t el egr ama t i ene hast a 10 pal abr as i f ( numPal abr as <= 10) { cost o = COSTO_URGENTE; } / / Si el numer o depal abr as excede a 10 pal abr as el se { cost o = COSTO_URGENTE + COSTO_ADI CI ONAL_URGENTE * ( numPal abr as - 10) ; } } / / Si el t el egr ama no es or di nar i o ni ur gent e el se { cost o = 0; } }
/ ** * Est a f unci n r egr esa una cadena con el t i po de t el egr ama, su * numer o de pal abr as y su cost o. * @r et ur n Cadena con el t i po de t el egr ama, su numer o de pal abr as y * su cost o. */ publ i c St r i ng t oSt r i ng( ) { r et ur n t i poTel egr ama + " , " + numPal abr as + " , " + cost o; } }
4. Edite la clase principal DemoTelegrama como se muestra en el siguiente listado:
/ ** * Est a cl ase per mi t e pr obar l a cl ase Tel egr ama 4 Depuracin de Programas en Java con el IDE NetBeans ITSON Manuel Domitsu Kono * * @aut hor mdomi t su */ publ i c cl ass DemoTel egr ama {
/ ** * Est a f unci on pr ueba l os met odos de l a cl ase Tel egr ama * @par amar gs Ar gument os en l a l i nea de comando */ publ i c st at i c voi d mai n( St r i ng[ ] ar gs) { Tel egr ama t el egr ama1 = new Tel egr ama( " Or di nar i o" , 8) ; t el egr ama1. cal cul aCost o( ) ; Syst em. out . pr i nt l n( t el egr ama1) ;
t el egr ama1. set NumPal abr as( 12) ; t el egr ama1. cal cul aCost o( ) ; Syst em. out . pr i nt l n( t el egr ama1) ;
Tel egr ama t el egr ama2 = new Tel egr ama( " Ur gent e" , 8) ; t el egr ama2. cal cul aCost o( ) ; Syst em. out . pr i nt l n( t el egr ama2) ;
t el egr ama2. set NumPal abr as( 12) ; t el egr ama2. cal cul aCost o( ) ; Syst em. out . pr i nt l n( t el egr ama2) ; } }
5. Para iniciar la ejecucin del programa instruccin por instruccin seleccione del men principal la opcin Debug/Step Into o presione la tecla F7 como se ve en la Figura 1.
6. NetBeans iniciar la ejecucin del programa y detendr la ejecucin en la lnea con la primera instruccin del programa, resaltando esa lnea de color verde como se muestra en la Figura 2. La instruccin resaltada es la siguiente instruccin a ejecutarse.
7. Para ejecutar la instruccin del programa resaltada seleccione del men principal la opcin Debug/Step Over o presione la tecla F8 como se ve en la Figura 3. Otra forma de realizar esta tarea es hacer clic en el icono Step Over de la barra de tareas, Figura 4.
Depuracin de Programas en Java con el IDE NetBeans 5 ITSON Manuel Domitsu Kono
Figura 1
Figura 2 6 Depuracin de Programas en Java con el IDE NetBeans ITSON Manuel Domitsu Kono
Figura 3
Figura 4
8. Note que aunque la instruccin aparte de crear el objeto invoca al constructor de la clase, NetBeans ejecuta la instruccin como si fuera una instruccin simple y detiene la ejecucin del programa en la lnea con la siguiente instruccin del programa, resaltando esa lnea de color verde, Figura 5.
9. Como la instruccin ejecutada:
Tel egr ama t el egr ama1 = new Tel egr ama( " Or di nar i o" , 8) ;
crea el objeto t el egr ama1, NetBeans abre un panel llamado Variables debajo del panel de edicin y ah nos muestra las variables creadas, hasta este momento, en el mtodo en que se encuentra el programa as como los parmetros del mtodo (el mtodo mai n( ) , en este caso), Figura 6. Depuracin de Programas en Java con el IDE NetBeans 7 ITSON Manuel Domitsu Kono
Figura 5
Figura 6
10. Si no aparece el panel Variables seleccione del men principal la opcin Window/Debugging/Variables o presione las teclas Alt +Maysculas +1, como se ve en la Figura 7. Aparecer el panel Variables.
11. Como la variable telegrama1 es un objeto, podemos inspeccionar los valores de sus atributos haciendo clic en el icono +a la izquierda del nombre de la variable. Al hacerlo el nodo de la variable se expandir mostrando sus atributos y sus valores, Figura 8.
12. Presiona la tecla F8 de nuevo para ejecutar la siguiente instruccin:
t el egr ama1. cal cul aCost o( ) ;
Note que de nuevo, Netbeans ejecuta la invocacin del mtodo cal cul acost o( ) como una sola instruccin. Inspeccione en el panel Variables el valor del atributo costo del objeto t el egr ama1.
8 Depuracin de Programas en Java con el IDE NetBeans ITSON Manuel Domitsu Kono
Figura 7
Figura 8 Ejecucin de un Programa Hasta una Instruccin Dada
Hay ocasiones en las que nos interesa ejecutar las instrucciones de un programa hasta una instruccin dada sin detenernos en las instrucciones intermedias. Una forma de hacerlo es la siguiente:
1. Coloque el cursor al principio de la lnea con la instruccin en la que se desee detener la ejecucin. En este caso coloque el cursor en la lnea con la instruccin: Depuracin de Programas en Java con el IDE NetBeans 9 ITSON Manuel Domitsu Kono Tel egr ama t el egr ama2 = new Tel egr ama( " Ur gent e" , 8) ;
2. Para ejecutar las instrucciones del programa hasta antes de la instruccin en la que est el cursor, seleccione del men principal la opcin Debug/Run to Cursor o presione la tecla F4 como se ve en la Figura 9. Otra forma de realizar esta tarea es hacer clic en el icono Step Over de la barra de tareas, Figura 10.
Figura 9
Figura 10
3. El programa se detendr en la lnea seleccionada resaltndola. Inspeccione los nuevos valores de los atributos de t el egr ama1. Tambin inspeccione la salida producida por el programa en el panel de depuracin que aparece debajo de el panel de edicin, traslapando al panel Variables, Figura 11.
A continuacin podemos ejecutar el programa instruccin por instruccin presionando la tecla F8, ejecutar el programa hasta otra instruccin colocando el cursor al inicio de la lnea que tiene la instruccin y presionando la tecla F4, ejecutar el programa hasta el final o terminar la sesin de depurado como se vern ms adelante.
10 Depuracin de Programas en Java con el IDE NetBeans ITSON Manuel Domitsu Kono
Figura 11 Depurado de un Mtodo
Si al ejecutar un programa que tiene uno o ms mtodos queremos depurar el cdigo de un mtodo y no slo ejecutar el cdigo del mtodo como si fuese una sola instruccin se sigue el siguiente procedimiento:
1. El programa se encuentra detenido en la lnea con la instruccin:
Tel egr ama t el egr ama2 = new Tel egr ama( " Ur gent e" , 8) ;
Para entrar al cdigo del mtodo (el constructor) para ejecutar su cdigo en el depurador seleccione del men principal la opcin Debug/Step Into o presione la tecla F7 como se ve en la Figura 12. Otra forma de realizar esta tarea es hacer clic en el icono Step Into de la barra de tareas, Figura 13.
Figura 12
Depuracin de Programas en Java con el IDE NetBeans 11 ITSON Manuel Domitsu Kono
Figura 13
2. Al hacerlo, el depurador se detendr en la lnea en la que se encuentra el encabezado del mtodo, como se muestra en la figura 14. Note que en este caso, como el mtodo se encuentra en la clase Telegrama, en el panel de edicin, el panel de esa clase es el activo. Si el archivo de la clase hubiera estado cerrado, NetBeans lo habra abierto:
Figura 14
3. Como NetBeans entr en el cdigo de una clase, en el panel Variables aparece el nodo t hi s que si lo expandimos veremos que aparecen nodos para cada uno de los atributos de la clase, Figura 15. Tambin como esta en el encabezado del mtodo, en el panel variables estn los nodos que representan los parmetros de la funcin
4. Para empezar a ejecutar el cdigo del constructor presione la tecla F8. Como en este caso en la clase hay unos atributos que se inicializan al declararse y como esta inicializacin ocurre al construir un objeto de la clase, el depurador se detendr en la lnea de la primera declaracin, Figura 16.
5. Presione la tecla F8 cuatro veces para ejecutar cada una de las inicializaciones. El depurador se detendr en la primera instruccin del mtodo, Figura 17
12 Depuracin de Programas en Java con el IDE NetBeans ITSON Manuel Domitsu Kono
Figura 15
Figura 16
Figura 17 Depuracin de Programas en Java con el IDE NetBeans 13 ITSON Manuel Domitsu Kono 6. Dentro del cuerpo del mtodo puede ejecutar las instrucciones una por una presionando la tecla F8 o ejecutar hasta una instruccin colocando el cursor en la instruccin deseada y presionando la tecla F4.
7. Presione la tecla F8 dos veces observando lo que sucede en cada caso. Note que NetBeans se detiene en la lnea que contiene la llave que cierra el cuerpo del mtodo, Figura 18.
Figura 18
8. Presione de nuevo la tecla F8 para terminar la ejecucin del mtodo. El depurador termina la ejecucin del mtodo y el programa regresa a la lnea de cdigo en la que ocurri la llamada al mtodo, Figura 19.
Figura 19
14 Depuracin de Programas en Java con el IDE NetBeans ITSON Manuel Domitsu Kono Terminar el Depurado de un Mtodo
Si estando depurando un mtodo ya no nos interesa continuar su ejecucin instruccin por instruccin podemos ejecutar el cdigo hasta el final y regresar a donde fue llamado, siguiendo el siguiente procedimiento:
1. Seleccione del men principal la opcin Debug/Step Out o presione la tecla Ctrl +F7 como se ve en la Figura 20. Otra forma de realizar esta tarea es hacer clic en el icono Step Into de la barra de tareas, Figura 21.
Figura 20
Figura 21
2. El depurador termina la ejecucin del mtodo y el programa regresa a la lnea de cdigo en la que ocurri la llamada al mtodo, Figura 19:
3. Podemos seguir ejecutando el programa instruccin por instruccin presionando la tecla F8, ejecutar el programa hasta otra instruccin colocando el cursor al Depuracin de Programas en Java con el IDE NetBeans 15 ITSON Manuel Domitsu Kono inicio de la lnea que tiene la instruccin y presionando la tecla F4, ejecutar el programa hasta el final o terminar la sesin de depurado como se vern a continuacin. Ejecucin de un Programa Hasta el Final
Hay ocasiones en las que nos interesa ejecutar las instrucciones de un programa hasta el final sin detenernos en las instrucciones intermedias. Una forma de hacerlo es la siguiente:
1. Seleccione del men principal la opcin Debug/Continue o presione la tecla F5 como se ve en la Figura 22. Otra forma de realizar esta tarea es hacer clic en el icono Continue de la barra de tareas, Figura 23.
Figura 22
Figura 23
2. Al hacerlo, el programa ejecutar hasta el final, terminando la sesin de depuracin. 16 Depuracin de Programas en Java con el IDE NetBeans ITSON Manuel Domitsu Kono Terminacin de la Sesin de Depurado de un Programa
Si ya no nos interesa ejecutar las instrucciones de un programa hasta el final, podemos terminar la sesin de depurado del programa. Una forma de hacerlo es la siguiente:
1. Seleccione del men principal la opcin Debug/Finish Debugger Session o presione las teclas Maysculas + F5 como se ve en la Figura 24. Otra forma de realizar la misma tarea es hacer clic sobre el icono Finish Debugger Session de la barra de tareas, como se muestra en la Figura 25.
Figura 24
Figura 25
2. Al hacerlo, el programa terminar la sesin de depurado.