PDF de programación - ExcepcionesES - Java y Servicios Web I - Master en Ingeniería Matemática

Imágen de pdf ExcepcionesES - Java y Servicios Web I - Master en Ingeniería Matemática

ExcepcionesES - Java y Servicios Web I - Master en Ingeniería Matemáticagráfica de visualizaciones

Publicado el 14 de Enero del 2017
935 visualizaciones desde el 14 de Enero del 2017
1.010,3 KB
52 paginas
Creado hace 11a (17/05/2012)
Excepciones y E/S

Java y Servicios Web I

Master en Ingeniería Matemática

Manuel Montenegro

Dpto. Sistemas Informáticos y Computación

Desp. 467 (Mat)

[email protected]

Contenidos

● Generación de excepciones.
● Captura de excepciones.
● Generación de excepciones.
● Excepciones definidas por el programador.
● Bloques try/catch/finally.
● Entrada/Salida en Java.
● Serialización.

17/Mayo/2012

6. Excepciones y E/S

2

Excepciones

● Una excepción es una situación anómala que ocurre

en tiempo de ejecución.
● Intentar abrir un archivo que no existe.
● Intentar crear un archivo sin que haya espacio suficiente

en el disco.

● Intentar leer un número del teclado, cuando el usuario

ha introducido algo que no es un número.

● Intento de acceder a un array más allá de sus límites.
● etc.

● Java permite al programador tomar el control del

programa en presencia de estas situaciones
anómalas

→ capturar una excepción.

17/Mayo/2012

6. Excepciones y E/S

3

Generación de excepciones

public class TestException
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Introduce un número: ");
int a = sc.nextInt();
System.out.println("El número que has introducido es " + a);
}
}

17/Mayo/2012

6. Excepciones y E/S

4

Generación de excepciones

main

llama a

nextInt

llama a

nextInt

llama a

next

llama a

throwFor

● throwFor detectó una situación anómala y

decidió reportarlo a next mediante el
lanzamiento de una excepción.

17/Mayo/2012

6. Excepciones y E/S

5

Generación de excepciones

main

llama a

nextInt

llama a

nextInt

llama a

next

llama a

throwFor

● Cuando throwFor lanza una excepción, su

ejecución se interrumpe y vuelve al método
que llamó a throwFor (es decir, next).

● En la función next no se captura la excepción.

17/Mayo/2012

6. Excepciones y E/S

6

Generación de excepciones

main

llama a

nextInt

llama a

nextInt

llama a

next

llama a

throwFor

● Como en next no se captura la excepción, la

ejecución de next se interrumpe y la ejecución
vuelve a nextInt.

17/Mayo/2012

6. Excepciones y E/S

7

Generación de excepciones

main

llama a

nextInt

llama a

nextInt

llama a

next

llama a

throwFor

● En nextInt tampoco se captura la excepción, y

la ejecución vuelve al llamante.

17/Mayo/2012

6. Excepciones y E/S

8

Generación de excepciones

main

llama a

nextInt

llama a

nextInt

llama a

next

llama a

throwFor

● La ejecución vuelve a nuestro método main.
Como nosotros no capturamos la excepción,
ésta se eleva hacia la máquina virtual de Java,
que fue la encargada de ejecutar main.

17/Mayo/2012

6. Excepciones y E/S

9

Generación de excepciones

main

llama a

nextInt

llama a

nextInt

llama a

next

llama a

throwFor

● La máquina virtual de Java, al recibir una

excepción, aborta la ejecución del programa, y
muestra por pantalla el siguiente mensaje de
error:

stack trace

17/Mayo/2012

6. Excepciones y E/S

10

Clases de excepciones

● El mensaje de error generado por la JVM no
sólo muestra la secuencia de llamadas en las
que se produce la excepción.

● También muestra el tipo de excepción que se

ha generado.

17/Mayo/2012

6. Excepciones y E/S

11

Clases de excepciones

17/Mayo/2012

6. Excepciones y E/S

12

Clases de excepciones

● Las excepciones en Java son objetos.
● La información mostrada por la JVM es la clase

a la que pertenece la excepción lanzada.

● Las excepciones poseen métodos que

proporcionan información sobre el error
producido.
● Esta información depende del tipo de error.

17/Mayo/2012

6. Excepciones y E/S

13

Contenidos

● Generación de excepciones.
● Captura de excepciones.
● Generación de excepciones.
● Excepciones definidas por el programador.
● Bloques try/catch/finally.
● Entrada/Salida en Java.
● Serialización.

17/Mayo/2012

6. Excepciones y E/S

14

Captura de excepciones

● Una excepción puede capturarse mediante la

construcción try-catch.

public class TestException {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try {
System.out.print("Introduce un número: ");
int a = sc.nextInt();
System.out.println("El número que has introducido es " + a);
} catch (InputMismatchException e) {
System.out.println(“La cadena introducida no es un número.”);
System.out.println(e.getMessage());
}
}
}

17/Mayo/2012

6. Excepciones y E/S

15

Captura de excepciones

● Dentro del bloque try se coloca el código que

es susceptible de generar una excepción.

public class TestException {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try {
System.out.print("Introduce un número: ");
int a = sc.nextInt();
System.out.println("El número que has introducido es " + a);
} catch (InputMismatchException e) {
System.out.println(“La cadena introducida no es un número.”);
System.out.println(e.getMessage());
}
}
}

17/Mayo/2012

6. Excepciones y E/S

16

Captura de excepciones

● Si el código dentro del bloque try produce una excepción, se abandona

dicho bloque y se comprueba si la clase de la misma se corresponde con (o
es subclase de) la clase indicada tras el catch.

public class TestException {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try {
System.out.print("Introduce un número: ");
int a = sc.nextInt();
System.out.println("El número que has introducido es " + a);
} catch (InputMismatchException e) {
System.out.println(“La cadena introducida no es un número.”);
System.out.println(e.getMessage());
}
}
}

17/Mayo/2012

6. Excepciones y E/S

17

Captura de excepciones

● Si la excepción es compatible con el tipo indicado tras el catch, se

ejecutará el bloque correspondiente.

● Además, la variable indicada tras el tipo contendrá el objeto que

representa la excepción lanzada.

public class TestException {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try {
System.out.print("Introduce un número: ");
int a = sc.nextInt();
System.out.println("El número que has introducido es " + a);
} catch (InputMismatchException e) {
System.out.println(“La cadena introducida no es un número.”);
System.out.println(e.getMessage());
}
}
}

17/Mayo/2012

6. Excepciones y E/S

18

Captura de excepciones

● Si la excepción no es compatible con el tipo
indicado tras el catch, se volverá a lanzar al
nivel superior (la JVM).

17/Mayo/2012

6. Excepciones y E/S

19

Captura de excepciones

● Es posible tener varias sentencias catch en un

mismo bloque try, con el fin de capturar
distintos tipos de excepciones.

Scanner sc = new Scanner(System.in);
try {
System.out.print("Introduce un número: ");
int a = sc.nextInt();
System.out.println("El número que has introducido es " + a);
} catch (InputMismatchException e) {
System.out.println(“La cadena introducida no es un número.”);
System.out.println(e.getMessage());
} catch (NoSuchElementException e) {
System.out.println(“No hay más caracteres en la entrada.”);
System.out.println(e.getMessage());
}

17/Mayo/2012

6. Excepciones y E/S

20

Jerarquía de excepciones

Throwable

Exception

Error

IOException

RuntimeException

NullPointerException

IndexOutOfBoundsException

NoSuchElementException

InputMismatchException

17/Mayo/2012

6. Excepciones y E/S

21

Jerarquía de excepciones

Scanner sc = new Scanner(System.in);
try {
System.out.print("Introduce un número: ");
int a = sc.nextInt();
System.out.println("El número que has introducido es " + a);
} catch (InputMismatchException e) {
System.out.println(“La cadena introducida no es un número.”);
System.out.println(e.getMessage());
} catch (NoSuchElementException e) {
System.out.println(“No hay más caracteres en la entrada.”);
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
}

17/Mayo/2012

6. Excepciones y E/S

22

Contenidos

● Generación de excepciones.
● Captura de excepciones.
● Generación de excepciones.
● Excepciones definidas por el programador.
● Bloques try/catch/finally.
● Entrada/Salida en Java.
● Serialización.

17/Mayo/2012

6. Excepciones y E/S

23

Generar una excepción

public class Estudiante extends Persona {
private int puntuacionTotal;
private int numeroCalificaciones;


public double getNotaMedia() {
return ((double) puntuacionTotal)/numeroCalificaciones;
}
}

¿Y si numeroCalificaciones = 0?

● Para generar una excepción, hay que:

● Crear el objeto que contenga la excepción (de alguna subclase de

Exception).

● Lanzar dicho objeto al llamante mediante throw.

17/Mayo/2012

6. Excepciones y E/S

24

Generar una excepción

public class Estudiante extends Persona {
public double getNotaMedia() throws Exception {
if (numeroCalificaciones == 0)
throw new Exception(“No hay calificaciones”);
return ((double) puntuacionTotal)/numeroCalificaciones;
}
}

Estudiante est = new Estudiante(“David Sánchez”, new Fecha(10, 3, 2002), 23155512);
int notaMedia = 0;
try {
notaMedia = est.getNotaMedia();
} catch (Exception e) {
System.out.println(e.getMessage());
}

17/Mayo/2012

6. Excepciones y E/S

25

Contenidos

● Generación de excepciones.
● Captura de excepciones.
● Generación de excepciones.
● Excepciones definidas por el programador.
● Bloques try/catch/finally.
● Entrada/Salida en Java.
  • Links de descarga
http://lwp-l.com/pdf816

Comentarios de: ExcepcionesES - Java y Servicios Web I - Master en Ingeniería Matemática (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