1. Manejando las excepciones?
1.1. El manejo de excepciones se logra con el bloque: try { // código } catch (StackError e ) { //código que se hace cargo del error reportado en e }
1.1.1. El manejo de excepciones se logra con el bloque try. try { // código } catch (StackError e ) { // código para manejar el error de stack } catch (MathError me) { // código para manejar el error matemático indicado en me. }
2. Captura de excepciones
2.1. El bloque try tiene la forma general: try { //código } catch (e-type1 e ) // sentencias { } catch (e-type2 e ) { // sentencias } ... finally { //sentencias }
2.1.1. La cláusula FINALLY es ejecutada con posterioridad cualquiera sea la condición de término del try (sin o con error). Esta sección permite dejar las cosas consistentes antes del término del bloque try.
3. Exixten 2 tipos de excepciones: 1.Predefinidas en el sistema (Unchecked) 2Generadas por el programador (Checked)
3.1. 1. Predefinidas en el sistema (Unchecked) Se lanzan automáticaticamente cuando se realiza una operación no valida- -acceso a un objeto que no existe, -acceso a una posicion de una array que no existe, -division por cero
3.1.1. Predefinidas en el sistema
3.2. 2.Generadas por el programador -El programa explícitamente genera una excepción al detectar una situación de error que no se puede resolver en ese contexto -Útil en situaciones de prueba y depuración
3.2.1. public class Matematicas { public double dividir(double a, double b) throws Exception { if (b == 0) { throw new Exception("El argumento b no puede ser 0"); } return a / b; } } El método dividir lanza en la línea 4 una Checked Exception por lo tanto el método lo declara mediante throws. Ahora cualquiera que llame al método dividir está obligado a tratar la excepción Exception: public class Main { public static void main(String[] args) throws Exception { Matematicas matematicas=new Matematicas(); double c=matematicas.dividir(-1.6, 0); } }