Download Programación en Java
Document related concepts
no text concepts found
Transcript
Programación en Java Instructor: Lección 5: Manejo de Excepciones 1. 2. 3. 4. 5. Creando Excepciones El estatuto throw La capsula throws Try, catch y finally Cuando usar excepciones Programación en Java Excepciones Una excepción es un problema que ocurre durante la ejecución de un programa. Una excepción permite al programa para que maneje los eventos inesperados, creando objetos de tipo excepción. Programación en Java Excepciones Una excepción es lanzada (throws) cuando un error inesperado es encontrado. La excepción es atrapada (catch) y es manejada. Programación en Java En caso de que una excepción no sea manejada pasa al nivel superior en la invocación (stack) y así sucesivamente hasta encontrar un manejador de excepción. Si el manejador no es encontrado, la ejecución del programa termina. Programación en Java Tipo de excepciones En Java existen dos tipos de excepciones: Excepciones comprobadas: Representan las excepciones que tienen que ser manejadas por el programador. Excepciones no comprobadas: Son conocidas con el excepciones en tiempo de ejecución y el compilar no fuerza al programador Programación en Java Categorías de excepciones Programación en Java Creando Excepciones Para crear excepciones basta con extender de la clase Exception. Crear los constructores de la clase, con los mensajes personalizados que caractericen a la excepción. Programación en Java Creando Excepciones public class UsuarioInvalidoException extends Exception { public UsuarioInvalidoException() { super("El usario es invalido"); } public UsuarioInvalidoException(String arg){ super("El usuario: "+arg+ " no es válido"); } } Programación en Java El estatuto throw Las excepciones son lanzadas utilizando el estatuto throw. throw expresión Una vez que la expresión sea evaluada debe ser asignable a un objeto Throwable. Programación en Java El estatuto throw Ejemplo: if (connection==null) { throw new ImposibleCrearConexionException( "No se puede crear conexion" + “en el controlador de MySQL"); } Programación en Java La claúsula throws Indica cuales son las excepciones que deben ser manejadas por el programador son indicadas con la palabra reservada throws, en la firma del método Ejemplo: public Connection abrirConexion() throws SQLException, NamingExcpetion {..} Programación en Java La claúsula throws Si se invoca un método con una lista de excepciones utilizando la claúsula throws, se tienen tres opciones: Atrapar la excepción y manejarla Atrapar la excepción y asignarla a una de las excepciones que aparezcan en la firma del método. Declarar la excepción en la clausula throws y dejarla pasar. Programación en Java Try, catch, finally Las excepciones pueden capturarse utilizando la un bloque try, catch y finally. Notación: try { instrucciones } catch (excepcion_tipo1 identificador) { instrucciones } catch (excepcion_tipo1 identificador) { instrucciones } finally { instrucciones } Programación en Java try, catch y finally Ejemplo: /** * Permite obtener una conexión a una base de datos * @return Una conexion a una base de datos */ public Connection getConexion() throws ImposibleCrearConexionException { Connection con = null; try { con = dataSource.getConnection(); } catch (SQLException sqlex) { throw new ImposibleCrearConexionException( "No se puede crear conexion" + “en el controlador de MySQL"); } finally { dataSource.close(); } return con; } Programación en Java Ejercicio Cree la clase para la excepción UsuarioInvalidoException. La cual debe mostrar el mensaje: “El usuario es invalido”. Una vez creada la excepción, se utilizará en el método de autenticar que esta definido en la clase usuario. Programación en Java Ejercicio La clase GestorUsuario tiene tres métodos: public void agregar(Usuario usuario) throws ImposibleAgregarUsuarioException: Permite agregar un usuario la base de datos public void borrar(Usuario usuario) throws ImposibleBorrarUsuarioException : Permite eliminar los usuarios en la base de datos public void listar() throws ImposibleObtenerUsuarioException : Imprimirá en la consola todas los usuarios que contenga la lista, utilizando el método toString() de la clase Usuario.