Mapa mental
Manejo de las excepciones
Conteúdo do mapa
Manejo de las excepciones
Una excepción es la indicación de que se produjo un error en el programa. Se producen cuando la ejecución de un método no termina correctamente, sino que termina de manera excepcional como consecuencia de una situación no esperada,
Ejemplo
- Este es un caso donde la ejecución de un método arroja un error y el computado crea un objeto para representarlo y permitir que alguien del programa lo atrape y ayude a que el programa deje de funcionar.
- Suponga que tenemos una clase C1, en la cual hay un método llamado m1(), que es llamado desde las clases de la interfaz del programa. Los objetos de la clase C1 tienen un atributo de la clase C2, llamado atr . Suponga además que dentro del método m1() se invoca el método m2() de la clase C2 sobre el atributo llamado atr
- 1.Dentro de la clase C2 hay un método llamado m2() que tiene 3 instrucciones, que aquí mostramos como instr1, instr2, instr3. Dichas instrucciones pueden ser de cualquier tipo.
- 2.Suponga que se está ejecutando la instrucción instr2 del método m2() y se produce un error. En ese momento, a causa del problema el computador decide que no puede seguir con la ejecución del método (instr3 no se va a ejecutar).
- 3.Crea entonces un objeto de la clase Exception que dice que el error sucedió en la instrucción instr2 del método m2() y explica la razón del problema.
- 4.Luego, pasa dicho objeto al método m1() de la clase C1, que fue quien hizo la llamada. Si él lo atrapa (ya veremos más adelante cómo), el computador continúa la ejecución en el punto que dicho método indique.
- 5.Si el método m1() no atrapa la excepción, este objeto pasa a la clase de la interfaz que hizo la llamada. Este proceso se repite hasta que alguien atrape la excepción o hasta que el programa completo se detenga. Entendemos por manejar una excepción el hecho de poderla identificar, atraparla antes de que el programa deje de funcionar y realizar una acción para recuperarse del error (por lo menos, para informarle al usuario lo sucedido de manera amigable y no con un mensaje poco comprensible del computador).
- 4.Luego, pasa dicho objeto al método m1() de la clase C1, que fue quien hizo la llamada. Si él lo atrapa (ya veremos más adelante cómo), el computador continúa la ejecución en el punto que dicho método indique.
- 3.Crea entonces un objeto de la clase Exception que dice que el error sucedió en la instrucción instr2 del método m2() y explica la razón del problema.
- 2.Suponga que se está ejecutando la instrucción instr2 del método m2() y se produce un error. En ese momento, a causa del problema el computador decide que no puede seguir con la ejecución del método (instr3 no se va a ejecutar).
- 1.Dentro de la clase C2 hay un método llamado m2() que tiene 3 instrucciones, que aquí mostramos como instr1, instr2, instr3. Dichas instrucciones pueden ser de cualquier tipo.
- Suponga que tenemos una clase C1, en la cual hay un método llamado m1(), que es llamado desde las clases de la interfaz del programa. Los objetos de la clase C1 tienen un atributo de la clase C2, llamado atr . Suponga además que dentro del método m1() se invoca el método m2() de la clase C2 sobre el atributo llamado atr
- Este es un caso donde la ejecución de un método arroja un error y el computado crea un objeto para representarlo y permitir que alguien del programa lo atrape y ayude a que el programa deje de funcionar.
Anunciar que Puede Producirse una Excepción
- Cuando en un método queremos indicar que éste puede disparar una excepción en caso de que detecte una situación que considera anormal, esta indicación debe formar parte de la signatura del método. En el ejemplo 2 se muestra la manera de hacer dicha declaración.
- Ejemplo
- Este ejemplo muestra la manera de declarar en la signatura de un método que es posible que éste lance una excepción en caso de error. El método que se presenta forma parte de la clase Club y es responsable de afiliar un socio.
- 1.Con esta declaración el método advierte a todos aquellos que lo usan de que puede producirse una excepción al invocarlo. Los métodos que hacen la invocación pueden decidir atraparla o dejarla pasar.
- 2.No es necesario hacer un import de la clase Exception, puesto que esta clase está en un paquete que siempre se importa automáticamente ( java.lang ).
- 1.Con esta declaración el método advierte a todos aquellos que lo usan de que puede producirse una excepción al invocarlo. Los métodos que hacen la invocación pueden decidir atraparla o dejarla pasar.
- Este ejemplo muestra la manera de declarar en la signatura de un método que es posible que éste lance una excepción en caso de error. El método que se presenta forma parte de la clase Club y es responsable de afiliar un socio.
- Ejemplo
- Cuando en un método queremos indicar que éste puede disparar una excepción en caso de que detecte una situación que considera anormal, esta indicación debe formar parte de la signatura del método. En el ejemplo 2 se muestra la manera de hacer dicha declaración.
La Instrucción try-catch
- En la instrucción try-catch hay dos bloques de instrucciones, con los siguientes objetivos:
- 1.Delimitar la porción de código dentro de un método en el que necesitamos desviar el control si una excepción ocurre allí (la parte try ). Si se dispara una excepción en alguna de las instrucciones del bloque try, la ejecución del programa pasa inmediatamente a las instrucciones del bloque catch. Si no se dispara ninguna excepción en las instrucciones del bloque try, la ejecución continúa después del bloque catch.
- 2.Definir el código que manejará el error o atrapará la excepción (la parte catch ).
- 1.Delimitar la porción de código dentro de un método en el que necesitamos desviar el control si una excepción ocurre allí (la parte try ). Si se dispara una excepción en alguna de las instrucciones del bloque try, la ejecución del programa pasa inmediatamente a las instrucciones del bloque catch. Si no se dispara ninguna excepción en las instrucciones del bloque try, la ejecución continúa después del bloque catch.
- En la instrucción try-catch hay dos bloques de instrucciones, con los siguientes objetivos:
La Construcción de un Objeto Exception y la Instrucción throw
- Cuando necesitamos disparar una excepción dentro de un método utilizamos la instrucción throw del lenguaje Java. Esta instrucción recibe como parámetro un objeto de la clase Exception, el cual es lanzado o disparado al método que corresponda, siguiendo el esquema planteado anteriormente.
- Ejemplo
- En este ejemplo aparece la implementación del método de la clase Club que permite afiliar un socio. En este método, si ya existe un socio con la misma cédula, se lanza una excepción, para indicar que se detectó una situación anormal.
- 1.Este método lanza una excepción a aquél que lo llama, si le pasan como parámetro la información de un socio que ya existe o si el socio que se desea afiliar tiene suscripción VIP y ya se alcanzó el máximo número de suscripciones VIP que maneja el club.
- 2.El constructor de la clase Exception recibe como parámetro una cadena de caracteres que describe el problema detectado.
- 3.Cuando un método atrape esta excepción y le pida su mensaje (getMessage()), el objeto va a responder con el mensaje que le dieron en el constructor.
- 4.En este ejemplo, cuando se detecta el problema se crea el objeto que representa el error y se lo lanza, todo de una sola vez. Pero podríamos haber hecho lo mismo en dos instrucciones separadas.
- 3.Cuando un método atrape esta excepción y le pida su mensaje (getMessage()), el objeto va a responder con el mensaje que le dieron en el constructor.
- 2.El constructor de la clase Exception recibe como parámetro una cadena de caracteres que describe el problema detectado.
- 1.Este método lanza una excepción a aquél que lo llama, si le pasan como parámetro la información de un socio que ya existe o si el socio que se desea afiliar tiene suscripción VIP y ya se alcanzó el máximo número de suscripciones VIP que maneja el club.
- En este ejemplo aparece la implementación del método de la clase Club que permite afiliar un socio. En este método, si ya existe un socio con la misma cédula, se lanza una excepción, para indicar que se detectó una situación anormal.
- Ejemplo
- Cuando necesitamos disparar una excepción dentro de un método utilizamos la instrucción throw del lenguaje Java. Esta instrucción recibe como parámetro un objeto de la clase Exception, el cual es lanzado o disparado al método que corresponda, siguiendo el esquema planteado anteriormente.
Recuperación de una Situación Anormal
- Cuando se está ejecutando un método, puede pasar que desde su interior se invoque otro método y, desde el interior de éste, otro y así sucesivamente. En la figura 4.9 mostramos un ejemplo de la ejecución de un método m1() que invoca un método m2(), el cual llama a m3() y este último a m4().
- Supongamos ahora que durante la ejecución del método m4() se dispara una excepción. Es parte de nuestras decisiones de diseño decidir quién será el responsable de atraparla y manejarla. Una posibilidad es que el mismo método m4() la atrape y la procese. Otra posibilidad es que la responsabilidad se delegue hacia arriba, dejando que sea el método m3() o el método m2() o el método m1() quien se encargue de atrapar la excepción. En la figura 4.10 ilustramos la situación en que es el método m1() el responsable de hacerse cargo de la excepción.
- Cuando se está ejecutando un método, puede pasar que desde su interior se invoque otro método y, desde el interior de éste, otro y así sucesivamente. En la figura 4.9 mostramos un ejemplo de la ejecución de un método m1() que invoca un método m2(), el cual llama a m3() y este último a m4().
Informações
- Descrição
- Mapa Mental sobre Manejo de las excepciones, criado por Andrés Felipe Zambrano Rojas em 18-04-2018.
- Criado por
- Andrés Felipe Zambrano Rojas
- Visualizações
- 1
- Avaliação