2. ¿Qué son las excepciones?
El termino excepción se refiere a una condición excepcional de nuestro código y es una ocurrencia que altera el flujo de ejecución normal de nuestro programa.
Cuando ocurre una excepción en nuestro código se dice «Java lanzo una excepción».
Las excepciones pueden ser cachadas y tratadas de tal forma que la excepción no rompa la ejecución de nuestra aplicación, a esto se le llama manejo de excepciones.
Por ejemplo si tenemos un método que hace la lectura de un archivo, ¿que pasa si el archivo no esta disponible?, java lanza una excepción y nosotros podemos agregar el código que maneje esa excepción de tal forma que evitemos una interrupción de la ejecución de nuestro programa.
www.mentoringit.com.mx
3. try - catch
En java las excepciones se manejan por medio de bloques try-catch.
El bloque try se utiliza para definir el código que puede lanzar una excepción, por ejemplo el código que hace la lectura de un archivo de texto.
Uno o varios bloques catch son utilizados para cachar una excepción.
Ejemplo de código try-catch.
try{
// código para leer un archivo que puede lanzar una excepcion
}catch(Exception ex){
// código a ejecutar en caso de que una excepción ocurra en la lectura // del archivo
}
www.mentoringit.com.mx
4. try - catch - finally
El bloque finally es utilizado para indicar que cierto código se debe invocar siempre, sin importar si se lanzo una excepción o no.
Un bloque finally es utilizado comúnmente para la liberación de algún tipo de recurso, por ejemplo si tratamos de insertar datos a una tabla en la cual no tenemos permisos de insert, java lanzara una excepción, podemos definir un bloque finally que sin importar si ocurre o no una excepción al final cierre las conexiones a base de datos.
try{
// código para conectarnos y hacer un insert a una tabla
}catch(Exception ex){
// código a ejecutar en caso de que una
//excepción ocurra al insertar datos a la tabla
}finally{
// código para liberar conexiones a base de datos, ej. // cerrar la conexión.
}
www.mentoringit.com.mx
5. No se deben colocar sentencias de código entre los bloques try-catch-finally.
El bloque try siempre debe estar seguido por un bloque catch o por un bloque
finally, no es posible utilizar un bloque try solo.
Las excepciones son objetos y también podemos crear nuestras propias
excepciones.
Todas las excepciones son subtipos de java.lang.Exception.
www.mentoringit.com.mx
6. Jerarquía de clases de las excepciones
Checked Exceptions: Deben ser tratadas explícitamente por un bloque catch o lanzadas hacia el método que las invoca.
Unchecked Exceptions: RuntimeException y Error, estas excepciones no tienen que ser tratadas explícitamente, si algún método lanza una excepción de tipo unchecked, al invocar este método no se requiere el uso de un try-catch ni declarar algun throws.
www.mentoringit.com.mx
7. Error y Exception
Como se observo en la imagen anterior existen dos clases que heredan de Throwable: Error y Exception, esto quiere decir que pueden ser lanzados utilizando la palabra reservada throw o pueden ser lanzados también automáticamente por la maquina virtual de java.
Error: las subclases de Error representan situaciones inusuales que no están relacionadas con algún error del programa, por ej. Falta de memoria de la maquina virtual. Error no se considera como una excepción ya que no hereda de Exception.
Exception: representan condiciones que no permiten el flujo de ejecución correcto de un programa, por ej. La búsqueda de algún archivo inexistente en disco duro o algún tipo de comunicación fallida a través de la red.
www.mentoringit.com.mx