Sunteți pe pagina 1din 5

Programacin Orientada a

Objetos

Nombre: Antonio Escobar Toledo


Carrera: Ingeniera en desarrollo de software
Matricula: AL11500136
Facilitador: PABLO SANCHEZ LUNA
Email: FA1004058@unadmexico.mx
Asignatura: Programacin Orientada a Objetos
Unidad: 3
Tema: Manejo de excepciones

Manejo de excepciones
Podemos considerar que una Excepcin en programacin es una situacin poco
habitual que provoca resultados inesperados o incoherentes en nuestros mtodos,
pero que es contemplada en el anlisis, diseo y construccin de nuestro sistema:
el sistema se puede recuperar de estas situaciones.
Como ejemplos podemos citar envos duplicados de informacin, una cada de
nuestra base de datos, informacin invlida o inconsistente como un nmero de
telfono con un formato incorrecto...
Para mantener cdigos robustos que manejen estas situaciones, los lenguajes de
programacin incorporan mecanismos para el manejo de excepciones como parte
de sus estructuras de control.
Y las situaciones poco habituales que provocan resultados inesperados o
incoherentes y que no controlamos. Eso es un error en tiempo de ejecucin en
nuestro sistema, que puede desembocar en una inconsistencia de datos en
nuestra base de datos o en la finalizacin inesperada de nuestro sistema.
Un buen indicador de la calidad de un sistema software es comprobar cmo
responde cuando se producen fallos, ya sean esperados y controlados
(excepciones) o inesperados e incontrolados (errores).

Excepciones en Java
En el caso de Java se utilizan bloques try - catch - finally, throw y throws, y las
subclases
de java.lang.Exception. Un mtodo lanzarn (mediante un throw) una excepcin
(una clase que hereda java.lang.Exception) provocando que se abandone el flujo
de ejecucin normal y cediendo el control al bloque en el que se capturar (en un
bloque try - catch - finally). En la declaracin del mtodo se incluye throws para
avisar de que puede lanzar una excepcin.
Existen muchas excepciones predefinidas en Java, pero tambin nosotros
podemos crear
excepciones particulares a nuestros sistemas: basta crear una clase que extienda
de java.lang.Exception.

Existen dos grandes tipos de excepciones en Java:


Checked Exceptions (excepciones controladas). Se corresponden a errores
previstos, controlados en el cdigo y por tanto permite al sistema recuperarse. Son
lo que hemos definido anteriormente como excepciones.
El compilador Java es una gran ayuda ya que te obliga a capturarlas en un
bloque try - catch - finally o a declarar que el mtodo puede devolver una
excepcin (declarando un throws).
Unchecked Exceptions (excepciones no controladas). Son excepciones no
previstas ni controladas, y por tanto puede provocar inconsistencia de datos y la
finalizacin inesperada del sistema: lo que hemos definido anteriormente como
errores en tiempo de ejecucin.
En Java se implementan como subclases de java.lang.RuntimeException (que a
su vez hereda de java.lang.Exception) y el compilador no nos obliga a capturarlas
ni a declarar que nuestros mtodos pueden lanzarlas. NullPointerException o
IllegalArgumentException son dos ejemplos de estas excepciones.

Manejo de Excepciones en una arquitectura Java


Al invocar un mtodo deberamos obtener como resultado o bien el resultado
normal de la ejecucin o bien no hacer absolutamente nada. Las excepciones nos
servirn para comunicar a las capas superiores informacin sobre por qu no se
ha hecho nada si fuese necesario.
La utilizacin de bloques try - catch - finally es ms costoso en trminos de tiempo
de ejecucin y recursos que la utilizacin de bloques if - else.
utilizar los mecanismos de control de flujo ya existentes que consumen menos y
son ms fcilmente mantenibles.
Tampoco es recomendable capturar una excepcin en un bloque catch y no hacer
nada, o no hacer nada ms que lanzarla nuevamente.
Es aconsejable que las excepciones no rompan la encapsulacin. Por ejemplo si
en una capa inferior se produce una excepcin (por ejemplo una SQLException en
la capa de persistencia), a la capa superior no le interesa conocer los detalles de
implementacin, sino:
si se puede recuperar del error, es aconsejable transformar la excepcin original
en otra excepcin controlada ochecked con la informacin necesaria para
recuperar que la capa superior se pueda recuperar.
o si no puede recuperarse del error pasamos a la capa superior una excepcin
no

controlada o unchecked si no se debe continuar el flujo normal, o bien un


resultado nulo si no se quiere hacer nada especial.
Al capturar excepciones tambin capturamos las que heredan de sta. Por tanto al
capturar una excepcin del tipo java.lang.Exception tambin estamos
capturando todas las unchecked (ya que heredan de java.lang.RuntimeException y
sta hereda de java.lang.Exception). Hay que tener cuidado de si esto es
realmente lo que queremos.
Por todo lo dicho anteriormente, la gestin de las excepciones nos debera de
servir para recuperarnos ante errores esperados. Pero deberamos tener en
cuenta que pueden existir errores no controlados. Podramos gestionar estos
errores en un nico punto, desviando todas las excepciones no capturadas a un
action donde se tratarn (tpicamente presentacin de una pgina de error con un
mensaje y las acciones permitidas para el usuario, as como la auditora del error).
Podemos indicar en el web.xml esta redireccin:

<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/gestionErrores.do</location>
</error-page>

S-ar putea să vă placă și