TIPOS DE EXCEPCIONES
Existen varios tipos fundamentales de excepciones:




Error: Excepciones que indican problemas mu...
Si existe excepción
....................
Numerador = .............
Denominador = ............
Resultado = Numerador / Deno...
En el apartado anterior adelantábamos el diseño básico del tratamiento de excepciones: separar el
código de los programas ...
Entre el bloque try y el bloque catch no puede haber ninguna instrucción. Ambos bloques se
encuentran ligados en ejecución...
Tipos de excepciones
Upcoming SlideShare
Loading in …5
×

Tipos de excepciones

436 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
436
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tipos de excepciones

  1. 1. 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. La superclase de todas las excepciones es la clase Throwable. Sólo las instancias de esta clase o alguna de sus subclases pueden ser utilizadas como excepciones. La clase Trowable tiene dos clases derivadas: Error y Exception. La clase Exception sirve como superclase para crear excepciones de propósito específico (adaptadas a nuestras necesidades), por ejemplo, si estamos diseñando una clase que lee secuencialmente bytes en una cinta digital de datos, podemos crear la excepción: FinDeCinta que se produce cuando el dispositivo físico ha alcanzado el final de la cinta. Otro ejemplo podría ser la implementación de una clase de envío de datos a un satélite no geoestacionario, donde convendría incluir una excepción FueraDeCobertura que se produzca cuando el satélite se encuentre fuera del alcance de nuestra antena parabólica. Un último ejemplo: si escribimos un driver de impresora podemos crear una clase derivada de Exception para que nos avise de la situación excepcional FinDePapel . La clase Error sirve de superclase para una serie de clases derivadas ya definidas que nos informan de situaciones anormales relacionadas con errores de muy difícil recuperación producidos en el sistema.
  2. 2. Si existe excepción .................... Numerador = ............. Denominador = ............ Resultado = Numerador / Denominador; .................... System.out.println (“No se puede realizar la división”); No es obligatorio tratar las excepciones derivadas de la clase Error, ya que en la ejecución de una aplicación probablemente nunca se produzcan estas situaciones anormales, sin embargo, sí que es obligatorio hacer un tratamiento explícito de las excepciones derivadas de la clase Exception (no podemos ignorar la falta de cobertura de un satélite, el fin del papel en una impresora, el fin de datos en una lectura secuencial, etc.). En una aplicación bien diseñada e implementada es muchísimo más probable que se produzcan excepciones de tipo Exception que excepciones de tipo Error. La clase Exception tiene un amplio número de clases derivadas proporcionadas por el SDK, por ejemplo existen excepciones predefinidas para el uso de ficheros, de SQL, etc. De todas estas subclases, RuntimeExeption tiene una característica propia: no es necesario realizar un tratamiento explícito de estas excepciones (de todas las demás clases derivadas de Exception si es necesario). Esto es debido a que, al igual que con las excepciones derivadas de Error, existen pocas posibilidades de recuperar situaciones Entre las clases derivadas de RuntimeException se encuentran: anómalas de este tipo. El siguiente gráfico muestra las clases más importantes en el uso de excepciones y su jerarquía . En las clases no sombreadas es obligatorio realizar un tratamiento explícito de las excepciones, en las clases sombreadas no es necesario este tratamiento
  3. 3. En el apartado anterior adelantábamos el diseño básico del tratamiento de excepciones: separar el código de los programas del código de control de situaciones excepcionales en los programas, y los ilustrábamos gráficamente con el siguiente ejemplo: El bloque superior representa el código del programa y se le denomina bloque de “intento” (try). Aquí se introduce el código del programa susceptible de causar cierto tipo de excepciones. Las instrucciones se incluyen en un bloque con la siguiente sintaxis: try { // instrucciones susceptibles de causar cierto tipo de excepciones } El bloque inferior contiene las instrucciones de control de situaciones excepcionales. La sintaxis es: catch (TipoDeExcepcion Identificador) { // instrucciones de control de situaciones excepcionales }
  4. 4. Entre el bloque try y el bloque catch no puede haber ninguna instrucción. Ambos bloques se encuentran ligados en ejecución. El funcionamiento es el siguiente: se ejecutan las instrucciones del bloque try hasta que se produzca la situación de excepción de tipo TipoDeExcepcion; nótese que, habitualmente, no se producirá la excepción y se ejecutarán todas las instrucciones del bloque try. Si se da la excepción, se pasa a ejecutar las instrucciones del bloque catch y, posteriormente, las instrucciones siguientes al bloque catch. Si no se produce la excepción no se ejecutan las instrucciones del bloque catch. Gráficamente:

×