Download Leccion5_Programacion en Java [Modo de compatibilidad]

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.