Sunteți pe pagina 1din 3

Buenas noches Tutor.

Comienzo mi exposicin exlpicando brevemente el manejo de excepcines,


en Java es un mecanismo que permite gestionar errores y situaciones
excepcionales. Debido a que son unos de los pilares fundamentales del
lenguaje, todo programador sabe cmo lanzarlas y capturarlas, pero (como
cualquier aspecto fundamental en programacin) es necesario conocer con
cierta profundidad el propsito por el cual tenemos disponible dicho
mecanismo, adems de hacer un uso correcto de esta funcionalidad.
Cules son las ventajas y desventajas a considerar en el momento de
implementar o no, un manejo de excepciones a la gran mayora de nuestros
programas.
Ventajas
Separa Cdigo de Errores del cdigo normal. Por ejemplo cuando pasa algo
fuera de lo normal en la lgica principal de un programa Qu hacer?. Pues
las excepciones nos proveen de los medios para separar los detalles de que
podemos hacer cuando sucede esto.
Una segunda ventaja de las excepciones es la habilidad de propagar el
reporte de errores hacia arriba en la pila de llamada de mtodosRecuerde
que el entorno de tiempo de ejecucin de Java busca hacia atrs a travs de
la pila de llamadas para encontrar cualquier mtodo que est interesado en
manejar una excepcin particular. Un mtodo puede contener cualquier
excepcin lanzada dentro de este, permitiendo as a un mtodo avanzar la
pila de llamada para atraparla. As solo los mtodos que se interesan tienen
que preocuparse de detectar errores.
Ya que todas las excepciones lanzadas dentro de un programa son objetos,
la agrupacin o categorizacin de excepciones es un asunto natural de la
jerarqua de clases. Un ejemplo de un grupo de clases de excepcin
relacionadas en la plataforma Java son aquellas definidas en java.io
IOException y sus descendientes. IOException es la ms general y
representa cualquier tipo de error que pueda ocurrir cuando se efecta E/S.
Sus descendientes representan errores ms especficos. Por
ejemplo, FileNotFoundException significa que un archivo no podra ubicarse
en disco.
Desventajas
En mi caso yo noveo muchas desventajas, por el contrario creo que favorece
al programador , dndole confianza y seguridad ante posibles errores en
tiempo de ejecucin.
Pero hay aquellos que alegaban que iba en contra de la claridad de cdigo,
ya que consideraban ms limpio y elegante verificar las precondiciones y
tratar los posibles errores nada ms detectarlos, en lugar de amontonar
todo el tratamiento de fallos en uno o ms bloques catch que pueden
encontrarse a cientos de lneas de cdigo de distancia de la sentencia que
los propici.

Pero sin duda, los detractores ms fervientes del uso de esta tcnica eran
los que solan apelar a la poca eficiencia del manejo de excepciones frente a
la tctica de comprobar las precondiciones a prioridades y slo ejecutar el
cdigo peligroso cuando stas se cumplan.
Lo que s queda claro es que no se ha perdido eficiencia ninguna por
aadir el manejo de excepciones.
Como maximizar el rendimiento de nuestros sistemas en tiempos
de ejecucin sin dejar de lado un control minucioso de posibles excepciones.
Hay algunos principios de uso que debemos ver desde la perspectiva
del haz esto, en lugar del no hagas esto. Esto, que adems de ser un
pensamiento ms positivo, te permite presumir de conocer tanto las malas
como las buenas prcticas del uso de excepciones. Ah es nada.
Un buen uso del tratamiento de excepciones es usar excepciones que ya
existen, en lugar de crear las tuyas propias, siempre que ambas fueran a
cumplir el mismo cometido (que es bsicamente informar y, en caso de las
checked, obligar a gestionar). Se suelen usar excepciones que ya existen
cuando se dispone de un profundo conociendo del API que se est usando
(en otras palabras, experiencia).
Otra recomendacin que no suele llevarse a cabo nunca o casi nunca es la
de lanzar excepciones acordes al nivel de abstraccin en el que nos
encontramos. Imaginemos una sere de clases que actan como capas, una
encima de otra (cuanto ms arriba ms abstracta, cuanto ms abajo ms
concreta). Cuando se produce un error en las capas ms bajas y ste se
propaga hacia arriba, llega un momento en que dicho error representando
una condicin excepcional muy concreta se encuentra en un contexto muy
abstracto. Esto tiene bsicamente tres problemas: el primero, que puede
ser importante, es que estamos contaminando el API de las capas
superiores con suciedad de las inferiores. El segundo, que es importante, es
que estamos desvelando detalles de nuestra implementacin muchos
niveles por encima de lo deseable. El ltimo problema, que es importante
y puede ser crtico, es que si en el futuro deseamos intercambiar una de las
capas ms concretas y sta ha cambiado su implementacin, todas las
capas por encima se rompern. Por tanto, debemos lanzar excepciones
apropiadas a la abstraccin en la que nos encontramos.
Por ltimo, y para terminar con esta seccin y (casi) con este artculo, debes
documentar adecuadamente las excepciones que lanza tu cdigo. Para ello,
detalla en tus Javadoc todas las excepciones que lanzan tus mtodos,
informando que condiciones van a provocar el lanzamiento de cada una de
ellas.
Plantee uno o dos escenarios (ejemplos, sin cdigo) en los cuales Ud. maximice
el rendimiento y prevenga fallos del sistema por la frecuencia de excepciones.
1. Si crearamos una aplicacin como un Programa para descargar
musica de Internet, en donde tendremos que ingresar una url desde
el Canal de Youtube ; en el caso de que el ordenador intente constatar
que una direccin es vlida, es decir se verifica una Url valida, puede
ocurrir que la direccin del canal de Youtube no sea validad (se

genere una excepcin). Es necesario en este ejemplo un manejador


de excepciones, que informe al cliente del problema e intente
introducir bien la direccin o escribir un mensaje Si no puedes, no lo
hagas.
En este caso vemos como con el manejo de excepciones podemos crear
una aplicacin ms robusta y tolerante a fallos.

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