Documente Academic
Documente Profesional
Documente Cultură
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