1.062 visualizaciones desde el 3 de Julio del 2017
392,0 KB
18 paginas
Programación Orientada a Objetos
Programación Orientada a Objetos
Java: Excepciones
Java: Excepciones
Eduardo Mosqueira Rey
Eduardo Mosqueira Rey
LIDIA
LIDIA
Laboratorio de Investigación y
Laboratorio de Investigación y
desarrollo en Inteligencia Artificial
desarrollo en Inteligencia Artificial
Departamento de Computación
Departamento de Computación
Universidade da Coruña, España
Universidade da Coruña, España
Índice
Índice
Introducción
Introducción
1.
1.
2. Clases de excepciones
2. Clases de excepciones
3. Excepciones personalizadas
3. Excepciones personalizadas
4. La construcción try – catch
4. La construcción try – catch
5. Aserciones
5. Aserciones
6. Conclusiones finales
6. Conclusiones finales
– La solución tradicional consistía en que los métodos
– La solución tradicional consistía en que los métodos
devolvieran un valor en el que indicaran si en su ejecución se
devolvieran un valor en el que indicaran si en su ejecución se
había producido alguna incidencia que pudiera dar lugar a un
había producido alguna incidencia que pudiera dar lugar a un
error en el futuro.
error en el futuro.
– Por ejemplo la función fopen del C se utiliza para abrir un
– Por ejemplo la función fopen del C se utiliza para abrir un
fichero en el disco. Si este fichero no puede ser abierto la
fichero en el disco. Si este fichero no puede ser abierto la
fichero en el disco. Si este fichero no puede ser abierto la
fichero en el disco. Si este fichero no puede ser abierto la
función devuelve el valor null.
función devuelve el valor null.
• Desventajas de la solución tradicional
• Desventajas de la solución tradicional
– El encargado de llamar a la función debe acordarse de recoger
– El encargado de llamar a la función debe acordarse de recoger
el valor de retorno.
el valor de retorno.
– El código puede convertirse en una sucesión de
– El código puede convertirse en una sucesión de
comprobaciones de situaciones erróneas.
comprobaciones de situaciones erróneas.
– El encargado de llamar a la función puede no saber tratar el
– El encargado de llamar a la función puede no saber tratar el
error y necesite pasárselo a métodos de niveles superiores.
error y necesite pasárselo a métodos de niveles superiores.
• Ventajas de las excepciones
• Ventajas de las excepciones
– Si no se quiere las excepciones no pueden ser
– Si no se quiere las excepciones no pueden ser
obviadas
obviadas
– El lenguaje provee de construcciones del tipo try -
– El lenguaje provee de construcciones del tipo try -
catch - finally que facilitan la escritura del código en
catch - finally que facilitan la escritura del código en
catch - finally que facilitan la escritura del código en
catch - finally que facilitan la escritura del código en
presencia de excepciones y evita tener que incluir
presencia de excepciones y evita tener que incluir
sentencias condicionales cada vez que se llama a un
sentencias condicionales cada vez que se llama a un
método que puede generar una excepción
método que puede generar una excepción
– Los métodos que no sepan cómo tratar una
– Los métodos que no sepan cómo tratar una
excepción pueden pasarla a niveles superiores a
excepción pueden pasarla a niveles superiores a
través de la cláusula throws
través de la cláusula throws
– Las clases predefinidas están en el paquete java.lang
– Las clases predefinidas están en el paquete java.lang
– Las clases personalizadas pueden estar en cualquier paquete
– Las clases personalizadas pueden estar en cualquier paquete
• Throwable
• Throwable
– Describe la funcionalidad básica de todo aquello que se puede
– Describe la funcionalidad básica de todo aquello que se puede
– Describe la funcionalidad básica de todo aquello que se puede
– Describe la funcionalidad básica de todo aquello que se puede
lanzar en forma de excepción.
lanzar en forma de excepción.
– Dos constructores: uno sin parámetros y otro en el que se le
– Dos constructores: uno sin parámetros y otro en el que se le
puede incluir una cadena de texto que describa el error
puede incluir una cadena de texto que describa el error
producido
producido
• Error
• Error
– Destinada a representar problemas graves o condiciones
– Destinada a representar problemas graves o condiciones
anormales que no deberían ocurrir normalmente por lo que no
anormales que no deberían ocurrir normalmente por lo que no
es necesario que las aplicaciones se ocupen de gestionarlos
es necesario que las aplicaciones se ocupen de gestionarlos
– Es la clase base de aquellas excepciones que puede lanzar un
– Es la clase base de aquellas excepciones que puede lanzar un
programa, por lo que es la clase que más interesa al programador.
programa, por lo que es la clase que más interesa al programador.
– Tanto Exception como sus subclases (sin incluir RuntimeException)
– Tanto Exception como sus subclases (sin incluir RuntimeException)
son excepciones comprobadas, en el sentido de que el compilador
son excepciones comprobadas, en el sentido de que el compilador
comprueba que si se lanza una excepción en un método esta debe ser
comprueba que si se lanza una excepción en un método esta debe ser
capturada por el propio método o incluida en su cláusula throws.
capturada por el propio método o incluida en su cláusula throws.
• RuntimeException
• RuntimeException
– Junto con sus subclases representan excepciones en tiempo de
– Junto con sus subclases representan excepciones en tiempo de
ejecución que no necesitan ser capturadas obligatoriamente, por lo
ejecución que no necesitan ser capturadas obligatoriamente, por lo
tanto se trata de excepciones no comprobadas.
tanto se trata de excepciones no comprobadas.
– Las RuntimeException pueden ocurrir en cualquier parte de un
– Las RuntimeException pueden ocurrir en cualquier parte de un
programa y, normalmente, de forma muy numerosa. Por ese motivo el
programa y, normalmente, de forma muy numerosa. Por ese motivo el
coste de comprobar obligatoriamente si ha ocurrido una
coste de comprobar obligatoriamente si ha ocurrido una
RuntimeException es mayor que el beneficio que se produce por dicha
RuntimeException es mayor que el beneficio que se produce por dicha
captura obligatoria.
captura obligatoria.
– De esta forma Java permite que la captura de estas excepciones sea
– De esta forma Java permite que la captura de estas excepciones sea
class PiscinaNivelException extends Exception
{
int nivel;
public PiscinaNivelException (String descripcion, int valor)
{
super (descripcion);
nivel=valor;
}
}
Links de descarga
http://lwp-l.com/pdf4827
Comentarios de: Programación Orientada a Objetos - Java: Excepciones (0)
Comentarios de: Programación Orientada a Objetos - Java: Excepciones (0)
No hay comentarios