domingo, 3 de junio de 2012

5.2 Tipos de excepciones


¿Qué es una excepción?
Una excepción es un evento que ocurre durante la ejecución del programa que interrumpe el flujo normal de las sentencias.
Ósea, algo que altera la ejecución normal.
Muchas clases de errores pueden generar excepciones desde problemas de hardware, como la avería de un disco duro, a los simples errores de programación, como tratar de acceder a un elemento de un array fuera de sus límites.

TIPOS DE EXCEPCIONES
Existen varios tipos fundamentales de excepciones:
  • Error: Excepciones que indican problemas muy graves, que suelen ser no recuperables y no deben casi nunca ser capturadas.
  • Exception: Excepciones no definitivas, pero que se detectan fuera del tiempo de ejecución.
  • RuntimeException: Excepciones que se dan durante la ejecución del programa.
 

Todas las excepciones tienen como clase base la clase Throwable, que está incluida en el paquete java.lang, y sus métodos son:
  • Trowable( String mensaje ); Constructor. La cadena es opcional
  • Throwable fillInStackTrace(); Llena la pila de traza de ejecución.
  • String getLocalizedMessage(); Crea una descripción local de este objeto.
  • String getMessage(); Devuelve la cadena de error del objeto.
  • void printStackTrace( PrintStream_o_PrintWriter s ); Imprime este objeto y su traza en el flujo del parámetro s, o en la salida estándar (por defecto).
  • String toString; Devuelve una breve descripción del objeto.

Funcionamiento

Para que el sistema de gestión de excepciones funcione, se ha de trabajar en dos partes de los programas:
  • Definir qué partes de los programas crean una excepción y bajo qué condiciones. Para ello se utilizan las palabras reservadas throw y throws.
  • Comprobar en ciertas partes de los programas si una excepción se ha producido, y actuar en consecuencia. Para ello se utilizan las palabras reservadas try, catch y finally.


b)Manejo de excepciones: try - catch - finally

Cuando el programador va a ejecutar un trozo de código que pueda provocar una excepción (por ejemplo, una lectura en un fichero), debe incluir este fragmento de código dentro de un bloque try:
try {

  // Código posiblemente problemático

}

Pero lo importante es cómo controlar qué hacer con la posible excepción que se cree. Para ello se utilizan las clausulas catch, en las que se especifica que acción realizar:
try {

  // Código posiblemente problemático

} catch( tipo_de_excepcion e) {

  // Código para solucionar la excepción e

} catch( tipo_de_excepcion_mas_general e) {

  // Código para solucionar la excepción e

}



3 comentarios: