









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
Como usar las excepciones en java y que son
Tipo: Diapositivas
1 / 17
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










( java.lang.Error , subclase de java.lang.Throwable ) En Java, los errores se refieren a situaciones que no deberían pasar nunca y que el programa ha de abortar: errores de compilación, del sistema o de la JVM Ejemplos:
( java.lang.Exception , subclase de java.lang.Throwable ) En Java, las excepciones se refieren a situaciones extraordinarias que hay que tratar de manera especial. 2 tipos: 1 ) Excepciones implícitas: son las RunTimeException , relacionadas con errores de programación, p.ej. NullPointerException , IndexOutOfBoundsException , ArithmeticException , ClassCastException , etc. El propio Java durante la ejecución chequea y lanza automáticamente las excepciones que derivan de RunTimeException Sería posible capturar estos tipos de errores, pero el código se complicaría excesivamente si se necesitara chequearlos continuamente.
tienen que estar declaradas en los throws de los métodos)
método, y éste ejecuta una operación susceptible de generar una
excepción
Supongamos que m() NO trata la excepción NomExcepción
Ejemplo de NO tratamiento de excepciones: public void metodoExcepcion() throws Exception { // FileNotFoundException BufferedReader in = new BufferedReader(new FileReader("noexiste")); ... }
public void metodoExcepcion() { try { int[] a = new int[3]; // IndexOutOfBoundsException a[5]=10; // FileNotFoundException BufferedReader in = new BufferedReader(new FileReader("noexiste.txt")); ... } catch (IndexOutOfBoundsException e) { System.out.println(" *** IndexOutOfBoundsException... "); } catch (FileNotFoundException e) { System.out.println(" *** getMessage(): " + e.getMessage()); System.out.println(" *** toString(): " + e.toString()); e.printStackTrace(); } finally { System.out.println(" *** finally... "); } }
Hay que hacer una clase que herede de Exception (o de una de sus clases derivadas, la que se adapte mejor) En ella suele haber una constructora sin argumentos y una constructora con una String de argumento (el mensaje explicativo de la excepción). Ambas constructoras han de invocar a la constructora de la clase padre class myException extends Exception { public myException() { super(); } public myException(String s) { super(s); } }
Ejemplo: crear una excepción propia para proporcionar más información class ExcepFichero extends Exception { public String filename; public ExcepFichero(String s) { super(“Error en fichero “ + s + “, formato incorrecto”); filename = s; } public String toString() { return “Excepción Fichero “ + filename; } }
Si un método redefine otro de una superclase que utiliza throws , no tiene por qué lanzar las mismas excepciones de la clase padre. Puede lanzar las mismas o menos, pero NO puede lanzar nuevas excepciones ni excepciones de una clase más general Imprescindible para que se mantenga la regla de compatibilidad de tipos del polimorfismo de subtipo
Se puede utilizar assert para depurar programas Java Hay que insertar en el código: assert ExpresionBooleana; assert ExpresionBooleana1 : Expresion2; Cuando se ejecuta la instrucción, se evalúa ExpresionBooleana. Si el resultado es falso, el sistema genera un AssertionError con un mensaje que contendrá el resultado de haber evaluado Expresion2 (si la hay) Por defecto la JVM NO ejecuta los assert , hay que invocarla con la opción -ea o --enableassertions