Академический Документы
Профессиональный Документы
Культура Документы
MANIPULACIN DE ERRORES.
En java los errores en tiempo de ejecucin se denominan Excepciones; cuando ocurre un error,
java genera un clase con informacin del error, la informacin que se entrega depende del tipo de
error as como los mtodos para poder tratar con ella, cabe sealar que en java existen muchos
tipos de errores, por ende mencionarlos, uno a uno, sera interminable.
La clase padre de las clases que arrojan errores se denomina Throwable, la cual est a la cabeza
de una jerarqua de errores.
RuntimeException, se refiere a los errores que como programadores pueden cometer, entre
estos tenemos las divisiones por 0, acceso a ndices inexistentes en un vector entre otros.
IOException, que se refiere a errores ajenos a la programacin, por lo general se asocian a
la entrada o salida de datos, es decir al usuario del programa.
Ejemplo 1 El programa que a continuacin vern, solicita al usuario el ingreso de dos nmero
enteros, es decir ac nos podemos encontrar con errores del tipo IOException.
Como pueden ver, el cdigo al ejecutar lanzar un error ya que en el usuario a la segunda variable
le dio un valor no numrico; como pueden apreciar, el programa trmino su ejecucin
entregndonos informacin sobre el error, en este caso nos indica una excepcin de tipo.
Afortunadamente Java nos ofrece una alternativa para evitar que el programa lance el error, para
ello se debe recurrir a la estructura try catch finally, veamos nuestro ejemplo con esta estructura.
try: es el primer bloque en ejecutarse, en el colocamos las sentencias que pueden ocasionar
una excepcin.
catch():segundo bloque en instanciar y debe recibir como parmetro, la excepcin arrojada
por el bloque try, y luego en el podemos colocar las instrucciones que se detonaran en el
caso de ocurrir una excepcin.
Finally: tercer bloque en ejecutarse, el cual contiene las instrucciones que se ejecutan tanto
si hay o no excepciones.
Ejemplo 2 Crearemos un pequeo programa que pida al usuario dos numero enteros (el primero lo
usaremos como numerador y el segundo como denominador) a partir de estos nmeros
encontraremos el DIV (cociente) y el mod (resto); como pueden apreciar este programa solicita dos
parmetros enteros al usuario, es decir ac puede ocurrir una excepcin del tipo IOException,
asociada al ingreso de datos, pero tambin puede ocurrir una excepcin del tipo RuntimeException,
ya que si se ingresa un 0 en el denominador, numero vlido para el tipo de dato primitivo int este
arrojara un error de divisin por 0, a continuacin veremos el programa sin los bloques try
catch() finally
Tal como se coment anteriormente, este pequeo programa, puede lanzar varios errores, es por
ello que a continuacin iremos integrando los bloques try en donde corresponda:
Dado que el error se detona en cuanto se ingresa mal un dato, es recomendable, crear un ciclo,
para que el dato se vuelva a solicitar, es por ello que se crea la variable bandera inicializada en
0, la cual cambiar a 1 en cuanto el dato sea ingresado correctamente, terminando con el ciclo
do, a continuacin explicamos cmo se hizo el manejo de excepciones:
Bloque try, en este bloque colocamos todo el cdigo relacionado con la excepcin, el
cambio de la variable bander, el mensaje y por supuesto la lnea que puede detonar la
excepcin.
Bloque catch(), el mtodo next.Line() nos ayuda a que en cuanto se detone la excepcin
este vuelva a solicitar el dato, es decir vuelve al try, este mtodo es propietario de la
clase Scanner; luego aparece el mensaje para el usuario y reiniciamos bandera para que
no se salga del ciclo.
Bloque finally, no es necesario ya que no queremos hacer nada en caso de que exista o
no una excepcin.
Al igual que en el punto dos generamos un ciclo, para repetir mientras el dato este mal
ingresado, debido a que las dos excepciones son distintas, podemos colocarlas en el mismo
bloque try, esta es la razn para no haber usado el cdigo anterior en el mismo bloque try
con tres catch, ya que la excepcin de n1 y n2 son las mismas.
Bloque try, capta las excepciones provocadas por las lneas 14 y 15 (asignar dato a
n2 y la divisin de n1 por n2).
Primer Bloque catch(), al igual que en el punto uno capta el mal ingreso del tipo de
dato y vuelve a solicitarlo.
Segundo Bloque catch(), capta la divisin por 0 indica del error y vuelve a solicitar
el valor para n2.
Bloque finally, no es necesario ya que no queremos hacer nada en caso de que
exista o no una excepcin.
Si se est preguntando si puede separar este bloque try en dos, esto se puede hacer sin
problemas, solo que aumentar el cdigo, por otra parte es interesante recalcar que los catch
se ejecutaran en orden, es decir si captura el primero este no entrar al segundo; el ejemplo
completo lo puede encontrar en el zip llamado ejemplo que ubicado en la pgina de la
universidad.
ACTIVIDADES PROPUESTAS
1. Cree un programa en java usando netBeans, el que le permita representar la clase expuesta
en UML, debe generar todos los mtodos que en esta aparecen, en base a lo explicado por
el docente, adems incluya un mtodo que permita ver la ficha del personaje, el programa
debe permitir crear 5 personajes.(40 Puntos)
2. Cree un programa en java que realice las siguientes acciones desde un men: