Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modelo de terminación: En este modelo el invocador no retoma el control del flujo del
programa finalizando así la ejecución del código dentro del cual se produjo la
excepción.
Entre los lenguajes que soportan el modelo de terminación se encuentran Java, Ada, y
C++.
Modelo híbrido: es posible definir un modelo híbrido que comparta características de los
dos descritos, siendo el propio manejador el responsable de decidir si continúa la
operación que causó la excepción (por ejemplo, en caso de que sea un error
reparable), o por el contrario se termina.
Las excepciones deben ser usadas para tratar con condiciones anormales, no para
realizar el control del flujo normal de ejecución de una aplicación. Qué es una condición
anormal y qué no lo es puede depender del contexto y del criterio del programador. Por
ejemplo, si se espera que la condición ocurra a menudo, debería considerarse normal,
ya que lanzar una excepción conlleva unos sobrecostes asociados. Se recomienda
además que throw sólo debería ser utilizado para señalizar un error, no para depurar
errores de programación. Por último, un manejador de excepción sólo debería atrapar
una excepción en caso de que esté capacitado para recuperar la situación, por ejemplo,
corrigiendo la causa del error o relanzando como un nuevo tipo de excepción.
Ventajas: Las excepciones proporcionan un método limpio y simple para separar el flujo
normal de ejecución del código de tratamiento de situaciones anormales o erróneas,
mejorando por tanto la legibilidad y facilidad de mantenimiento del código. Además, no
es necesario maquinaria extra para propagar tanto los casos de éxito como de error al
invocador y con el uso de las excepciones sólo el método interesado en gestionar el
error debe preocuparse de definir el código de recuperación. En el caso de los
lenguajes orientados a objetos, el uso de excepciones conlleva un agrupamiento
jerárquico de los tipos de error, que permite una mejor representación del dominio del
problema, y un tratamiento de los errores en diferentes granularidades.
7. ¿Cómo se genera una excepción en JAVA? Comenta los tipos básicos de excepción
predefinidos (jerarquía de excepciones) y qué representa cada uno de ellos.
Exception y todas sus subclases se utilizan para todas aquellas excepciones de las que el
programa podría querer recuperarse. Un tipo particular de Exception son las
excepciones en tiempo de ejecución, representadas por la clase RuntimeException (que
es subclase directa de Exception), y sus derivadas. Son condiciones de error internas a la
aplicación, que ocurren durante la evaluación de expresiones, tales como un puntero
nulo o un índice fuera de rango, cuya recuperación podría ser posible.
Por otra parte, la clase Error y sus subclases representan condiciones excepcionales que
son externas a la aplicación, y que por tanto ésta normalmente no puede anticipar o
recuperarse del error. En otras palabras, no se espera que la aplicación se recupere.
Excepciones comprobadas: Son la clase Throwable y todas sus subclases que no son
RuntimeException o Error, ni sus subclases. Son condiciones excepcionales que están
sujetas a la comprobación por parte del compilador, por lo que si un método contiene
código que pueda lanzar un tipo de excepción, entonces debe gestionar la excepción
internamente o bien especificarlo en su definición mediante la cláusula throws.
Un nuevo tipo de excepción en Java se define como una subclase de una excepción
existente
10. ¿En qué consiste el encadenamiento de excepciones? ¿Cuándo es útil esta
técnica?