




Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
En este documento se explica el concepto de excepciones en Java, su importancia en el desarrollo de aplicaciones y cómo manejar las mismas. Se presentan diferentes tipos de excepciones, como ArithmeticException y NumberFormatException, y se muestran ejemplos prácticos de cómo manejar las excepciones en Java. Además, se introduce la instrucción try/catch y se explica cómo usarla para detectar y corregir errores de ejecución.
Tipo: Ejercicios
1 / 8
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





Excepciones El término excepción se utiliza en Java cuando algo salió mal, es decir, cuando ocurrió un error. Como todos sabemos, existe un gran número de situaciones por las que el software puede fallar, pero si queremos hacer software de calidad, debemos tomar conciencia que las clases de aplicaciones o applets que desarrollemos, en Java, deben manejar las excepciones. En Java una excepción es un objeto que define una situación inusual o un error. Una excepción es entonces un evento que sucede con algún error, pero es algo que no debiera pasar, resulta en la lógica de la clase en la que ocurre, y debemos de cuidarnos de no cometer un error de lógica. Normalmente Java nos detecta algunos errores en los que pudiera suceder una excepción y nos pide que declaremos el lugar en el que puede ocurrir, si es que no la manejaremos, entonces un programa puede estar diseñado para procesar las excepciones en tres formas distintas: No manejarla manejar la excepción cuando ocurre manejar la excepción en algún otro punto del programa Una excepción tan sencilla se puede revisar en el siguiente ejemplo: public class AplicacionExcepcion1 { public static void main(String args[]) { System.out.println("Antes del error"); System.out.println("Division por cero = " + 3 / 0); System.out.println("Despues del error"); } } En este ejemplo observamos como primero se despliega un letrero “Antes del error”, después se despliega un cálculo en el que sabemos que habrá un error y finalmente se despliega otro letrero “Después del error”. Al ejecutar la aplicación anterior observamos lo que sucede:
Vemos como se despliega el letrero “Antes del error”, pero después observamos el error de ejecución denominado en Java una excepcion, la Arithmetic Exception, esta excepción sucede cuando tratamos de dividir un número por cero, por eso mismo no alcanzamos a ver el mensaje “Después del error”, ya que al haber error de ejecución, se termina de usar la aplicación. Hay excepciones las cuales el compilador las marca desde un inicio y nos pide que nos protejamos para eso, por ejemplo la siguiente aplicación fue escrita para pedir un número al usuario y obtener el cuadrado de ese número: import java.io.; public class AplicacionExcepcion1 { public static void main(String args[]) { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int n; System.out.println("Da el numero"); n = Integer.parseInt(in.readLine()); System.out.println("El cuadrado del numero = " + nn); } } Pero al compilar dicha aplicación observamos que no compila, el compilador manda el siguiente mensaje: Nos está diciendo que al momento de tratar de leer un dato, puede haber un error de ejecución el cual debe ser capturado para que la aplicación no falle. Pero que tipo de error puede ocurrir, pues si se supone que se pide un número y el usuario no da un número,
Vemos como también nos da el error de excepción NumberFormatException, con el valor cinco. Hasta ahora hemos visto las excepciones NumberFormatException y la de ArithmeticException, las cuales son clases que están definidas en Java que nos hablan de errores, todas las clases de excepción se derivan de la clase Trowable. Todos pensaríamos que Exception es la superclase de todas las clases de excepciones, pero no es así la super clase es Trowable. La clase Throwable tiene dos subclases: Error y Exception. Hay nueve subclases de la clase Exception ya predefinidas, y cada una de ellas, a su vez, tiene numerosas subclases: Y a su vez esta clase Trowable desciende de la clase Object. Las excepciones se pueden visualizar como se muestra a continuación:
¿Cómo es que se pueden arreglar estos errores de Ejecución? La única manera de hacer que el software no tenga errores, es utilizando la instrucción try/catch, esta es la instrucción en Java que nos permiten detectar y corregir estos errores, veamos primero el formato del try/catch: try {
System.out.println("Division invalida " + ae.toString()); } } } Observamos de esta aplicación que las instrucciones completas están en el try, y de estas instrucciones pueden suceder dos diferentes errores de excepción, la que tengamos un número que es inválido o que tengamos una división por cero. En este ejemplo vemos que la parte de finally de la instrucción try/catch no fue usado, porque es opcional. Pero pudimos haberlo utilizado, para desplegar algún mensaje de despedida o alguna otra instrucción, veamos como queda la ejecución con errores: Aquí observamos como al tratar de dar el segundo número obtuvimos mensaje de error. Aquí nos damos cuenta que al dar el cero y tratar de hacer la división nos da el error de la excepción aritmética. Si quisiéramos que el programa no terminara podemos utilizar un ciclo para repetir mientras que el usuario haya dado datos incorrectos, haciendo uso de una variable boleana: import java.io.*; public class AplicacionExcepcion4 { public static void main(String args[]) throws IOException { boolean error = true; //asumimos que hay error while (error) { try { BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int n1, n2, n; System.out.println("Da un numero"); n1 = Integer.parseInt(in.readLine()); System.out.println("Da otro numero"); n2 = Integer.parseInt(in.readLine()); System.out.println("La division = " + n1/n2); error = false; // al llegar aqui no hubo error } catch (NumberFormatException nfe) { System.out.println("Numero invalido " + nfe.toString()); } catch (ArithmeticException ae) { System.out.println("Division invalida " + ae.toString()); } } } } Al revisar la aplicación ejecutándola podemos observar como podemos volver a dar los datos hasta que funciona: