Top Banner
Programación Orientada a Objetos Temario • Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones (Try – Catch – Finally) – Clase Throwable – Lazamiento de Excepciones (Throw – Throwable) – Excepciones Definidas por el Usuario
29

Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

Jan 28, 2016

Download

Documents

Pilar Severo
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

Programación Orientada a Objetos

Temario• Excepciones

– Definición.– Funcionalidad– Tipos de Excepciones– API de las Excepciones– Captura de Excepciones (Try – Catch – Finally)– Clase Throwable– Lazamiento de Excepciones (Throw – Throwable)– Excepciones Definidas por el Usuario

Page 2: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

-¿Que pasa si tu te diriges a un lado, pero en medio del camino tienes un inconveniente ?

- ¿Qué haces si estas trabajando manejando una maquinaria, pero de pronto esta empieza a fallar?

- ¿Qué pasa si haces una operación matemática INCALCULABLE?

He aquí el uso practico de las ‘Excepciones’

Excepciones

Page 3: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

Real:• Una excepción es predefinir una solución a un posible problema

que pueda pasar• Una excepción es una exclusión de la regla.

Programación:• Es un código predefinido que solo se ejecuta siempre y cuando

suceda algo especifico (usualmente problemas fuera del flujo de control específicos).

• Las excepciones son los métodos que permiten ‘Capturar’ errores en tiempo real, y ejecutar un código ‘opcional’.

ExcepcionesDefinición:

Page 4: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

ExcepcionesUso de excepciones:(Funcionalidad)

- Permite capturar problemas fuera de flujo en tiempo real.

- Permite evitar posibles problemas de una aplicación, haciendo que la aplicación no termine forzadamente en una ejecución.

- Cuando se ejecuta una excepción, esta misma toma el control de la situación, hasta que termina de controlarla y vuelve a donde se origino el problema.

- Se puede capturar excepciones tanto muy especificas, como generales.

- Es como una medida de “prevención de riesgos”.

Page 5: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Existen varios tipos fundamentales de excepciones:– Error: Excepciones que indican problemas muy

graves, que suelen ser no recuperables y no deben casi nunca ser capturadas.

– Exception: Excepciones no definitivas, pero que se detectan fuera del tiempo de ejecución.

– RuntimeException: Excepciones que se dan durante la ejecución del programa.

ExcepcionesTipos de excepciones

Page 6: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

ExcepcionesTipos de excepciones

De las excepciones fundamentales, cada una tiene sus excepciones derivadas (o especificas).Alguna de las cuales son:

• Error: - OutOfMemoryError: El lector ha agotado la memoria.- InternalError: Error interno en tiempo de ejecución. - UnknownError: Grave error desconocido.- VerifyError: Se ha producido un error de verificación al cargar

una clase.- (etc …)

Page 7: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

ExcepcionesTipos de excepciones

• Exception: - IOException: Excepciones relacionados con la entrada/salida

de programas FileNotFoundException: Excepcion cuando no se

encuentra un archivo relacionado. MalFormedURLException: Excepcion que se genera

cuando una la ubicación de un archivo/pagina (URL) es incorrecta, o esta mal redactada.

(etc …)

Page 8: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

ExcepcionesTipos de excepciones

• Exception: - RunTimeException:

NullPointerException: Se ha usado una referencia null para acceder a un campo.

ArithmeticException: Error de cálculo (como división por cero...).

ClassCastException: Intento de conversión inválida. NegativeArraySizeException: Intento de creación de un

vector de tamaño negativo. (etc …)

Page 9: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

ExcepcionesSintaxis deexcepciones:

En JAVA, para manejar uso de excepciones en un bloque de código, se usan los TRY, CATCH y FINALLY.

Try: - try viene del ingles ‘Tratar’, y es donde se encapsula

el código donde posiblemente puede llamarse una excepción por ejecuciones fuera del flujo esperado.

Si una cierta cantidad de código esta fuera de un TRY, este código esta libre de que llame una excepción.

Page 10: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

ExcepcionesSintaxis deexcepciones: Catch:

- Catch viene del ingles ‘Captar’, y es el lugar donde se listan las excepciones que se van a ‘tratar’ (try) junto con las ordenes de cada excepción. Las excepciones SIEMPRE se listan de la mas especifica, a las mas general.

Page 11: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

ExcepcionesSintaxis deexcepciones: Finally:

• Finally viene del ingles ‘Finalmente’, y es donde cuando un código fue tratado(try) y captado las excepciones(catch), con FINALLY va hacer una serie de instrucción Independiente si se llama una excepción o no.

• Usualmente se usa esta clausula para finalizar conexiones, cerrar archivos, o cierre de aplicaciones.

Page 12: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

Excepciones(...)

public static void main(String[]args){ // Inicio de la aplicación Servidor s = new Servidor(); Scanner teclado = new Scanner(); s.abrirConexion(); try { int numero1=100; int numero2 = teclado.nextInt(); int resultado = numero1 / numero2; System.out.println("El resultado es: "+resultado); s.guardarResultado(resultado); } Catch(OutOfMemoryError e) { System.out.println("No hay memoria para almacenar"); }

catch(IOException e) { e.prinStackTrace(); } Catch(ArithmeticException ae) { System.out.println("Error Matematico, no hay RESULTADO"); } Finally { s.cerrarConexion(); }}(...)

Ejemplo Excepciones:

Page 13: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

ExcepcionesEjemplo Excepciones:

catch(ArithmeticException e){ System.out.println(“Problemas al poder calcular");}

catch(ClassCastException ex){ System.out.println(“Error al transformar a numero");}

Page 14: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

ExcepcionesEjemplo Excepciones:

catch(ClassCastException e){ System.out.println("No se puede transformar el valor");}

catch(ArrayIndexOutOfBoundsException ex){ System.out.println("has intentado dar valores FUERA DEL ARREGLO");}

catch(NullPointerException e){ System.out.println("No pueden haber NULOS");}

Page 15: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Las excepciones pueden lanzarse en cualquier momento con Throw

• Throw es controlado por la clase padre de la llamada.

• Throw permite agregar nuevas funcionalidades de validaciones

• Para controlar una excepcion en el codígo no es necesaria controlarla en el main.

• Throw permite utilizar excepciones personalizadas

ExcepcionesLazamiento de Excepciones (Throw – Throwable)

Page 16: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Lanzar un error cuando un numero sea negativo.– Crear un método que reciba como parámetro un

número y agregamos la clausula throws Exception para que lance la excepción a la clase que la llamo.

– Crear en main la recepcion de un numero para la luego llamar el metodo validar todo dentro de un try-catch(Exception p)

ExcepcionesEjercicio Resuelto

Page 17: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Crear un método que reciba como parámetro un número y agregamos la clausula throws Exception para que lance la excepción a la clase que la llamo.

public static void validar (int i) throws Exception { if(i<0) { throw new Exception("El Numero es negativo"); } }

ExcepcionesEjercicio Resuelto

Page 18: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Crear en main la recepcion de un numero para la luego llamar el metodo validar todo dentro de un try-catch(Exception p)

package excepcionesthrow;

import javax.swing.JOptionPane;

public class Main {

public static void main(String[] args) {

try

{

int numero = (Integer.parseInt(JOptionPane.showInputDialog("Ingrese un numero")));

validar(numero);

}

catch(Exception p)

{

JOptionPane.showMessageDialog(null, p.getMessage());

}

}

public static void validar (int i) throws Exception

{

if(i<0)

{

throw new Exception("El Numero es negativo");

}

}

}

ExcepcionesEjercicio Resuelto

Page 19: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Conclusiones– Clausula throws dice cual es la clase de tipo

Excepcion que será lanzada– Clausula throw envia la excepción hacia la clase

que la llamo– Permite personalizar tus excepciones en tiempo

de ejecución

ExcepcionesThrow.rar

ExcepcionesEjercicio Resuelto

Archivo:

Page 20: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Crear un método que permita validar si el valor ingresado en un JOptionPane es Numerico.

• Crear un método que permita validar si el valor ingresado en un JOptionPane es de tipo Carácteres.

• Crear un método que permita validar si valor ingresado esta dentro del rango de 1 a 100

ExcepcionesEjercicios Propuestos

Page 21: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

Excepciones

API de las Excepciones

Page 22: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Superclase de todas las clases de excepción.• Dos tipos heredados:

– Error. Representa los errores del sistema y de compilación.

• No se captura salvo en ocasiones especiales.

– Exception. Tipo básico que puede lanzarse desde cualquier método de la biblioteca Java.

• Es el utilizado para capturar y crear nuevas excepciones.

ExcepcionesClase Throwable

Page 23: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Todas las excepciones tienen como clase base la clase Throwable, que está incluida en el paquete java.lang, y sus métodos son:– Throwable( String mensaje ); Constructor. La cadena es

opcional– Throwable fillInStackTrace(); Llena la pila de traza de ejecución.– String getLocalizedMessage(); Crea una descripción local de

este objeto.– String getMessage(); Devuelve la cadena de error del objeto.– void printStackTrace( PrintStream_o_PrintWriter s ); Imprime

este objeto y su traza en el flujo del parámetro s, o en la salida estándar (por defecto).

– String toString(); Devuelve una breve descripción del objeto.

ExcepcionesClase Throwable

Page 24: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Crear una clase a partir de Exception que maneje excepciones de números negativos– Crear clase PersonalizarException que herede de Exception

• Crear un constructor que reciba un string• Mandar un mensaje al constructor de Exception con el string del

constructor de PersonalizarException

– Crear un metodo en el main que arroje el error llamado validar

– Crear condición de numero negativo y lanzar throw new con la clase PersonalizarException y el mensaje personalizado.

– Crear Flujo del Programa en donde reciba el numero y luego llame al metodo validar todo esto debe estar rodeado de un try-catch(PersonalizarException p)

ExcepcionesEjercicio Resuelto

Page 25: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Crear clase PersonalizarException que herede de Exception– Crear un constructor que reciba un string– Mandar un mensaje al constructor de Exception con el

string del constructor de PersonalizarException

package excepciones;public class PersonalizarException extends Exception { public PersonalizarException(String mensaje) { super(mensaje); }}

ExcepcionesEjercicio Resuelto

Page 26: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Crear un metodo en el main que arroje el error llamado validar– Crear condición de numero negativo y lanzar throw new con la clase

PersonalizarException y el mensaje personalizado.

public class Main {public static void main(String[] args) {} public static void validar (int i) throws PersonalizarException { if(i<0) { throw new PersonalizarException("El Numero es negativo"); } }

}

ExcepcionesEjercicio Resuelto

Page 27: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

package excepciones;import javax.swing.JOptionPane;public class Main {

public static void main(String[] args) { try { int numero = (Integer.parseInt(JOptionPane.showInputDialog("Ingrese un numero"))); validar(numero); } catch(PersonalizarException p) { JOptionPane.showMessageDialog(null, p.getMessage()); p.printStackTrace(); } } public static void validar (int i) throws PersonalizarException { if(i<0) { throw new PersonalizarException("El Numero es negativo"); } }}

ExcepcionesEjercicio Resuelto

Page 28: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

Conclusiones• En el momento de ejecutar el método validar

se produce un salto en el código por la excepción hacia el catch

• Se pueden cambiar los mensajes arrojados del programa por mensajes propios

• En el catch se pudo crear una excepción propia PersonalizarException

Excepciones.rar

ExcepcionesEjercicio Resuelto

Archivo:

Page 29: Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.

• Utilizando PersonalizarException controlar mensajes personalizados:– División por Cero– Casting Invalido– Creación de arreglo con indice negativo– Acceso a arreglo fuera de indice

ExcepcionesEjercicios Propuestos