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.