PDF de programación - Programación Orientada a Objetos - Java: Excepciones

<<>>
Imágen de pdf Programación Orientada a Objetos - Java: Excepciones

Programación Orientada a Objetos - Java: Excepcionesgráfica de visualizaciones

Publicado el 3 de Julio del 2017
990 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

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

2

Excepciones
Excepciones
Introducción
Introducción

• Solución tradicional
• Solución tradicional

– 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.

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

3

Excepciones
Excepciones
Introducción
Introducción

• 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

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

4

Excepciones
Excepciones
Introducción
Introducción

• Piscina sencilla
• Piscina sencilla

class Piscina
{
private int nivel;
public final int MAX_NIVEL;

public Piscina(int max)
public Piscina(int max)
{
if (max<0) max=0;
MAX_NIVEL=max;
}

public int getNivel()
{ return nivel; }

public void vaciar(int cantidad)
{ nivel=nivel-cantidad; }

public void llenar(int cantidad)
{ nivel=nivel+cantidad; }
}

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

5

Excepciones
Excepciones
Introducción
Introducción

• Piscina con excepciones
• Piscina con excepciones

class Piscina
{
private int nivel;
public final int MAX_NIVEL;

public Piscina(int max)
{
if (max<0) max=0;
MAX_NIVEL=max;
MAX_NIVEL=max;
}

public int getNivel()
{ return nivel; }

public void vaciar(int cantidad) throws Exception
{
if (nivel-cantidad < 0)
throw new Exception();
else nivel=nivel-cantidad;
}

public void llenar(int cantidad) throws Exception
{
if (nivel+cantidad > MAX_NIVEL)
throw new Exception();
else nivel=nivel+cantidad;
}
}

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

6

Excepciones
Excepciones

Clases de Excepciones
Clases de Excepciones



Throwable

Error

Exception

LinkageError

VirtualMachineError

CloneNotSupportedException

PrinterException

RuntimeException

IOException

ArithmeticException

NullPointerException

ArrayIndexOutOfBoundsException

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

7

Excepciones
Excepciones

Clases de Excepciones
Clases de Excepciones

• Características generales
• Características generales

– 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

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

8

Excepciones
Excepciones

Clases de Excepciones
Clases de Excepciones

• Exception
• Exception

– 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

algo opcional.
algo opcional.

© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña
© Eduardo Mosqueira Rey Departamento de Computación Universidade da Coruña

9

Excepciones
Excepciones

Excepciones personalizadas
Excepciones personalizadas



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)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad