Cerca de la Competencia
Por qué No es bueno abusar de las excepciones
No hay que olvidar el objetivo de las excepciones, que es informar acerca de algo "excepcional", algo que no estaba contemplado. Yo mismo he cometido durante mucho tiempo el error de usar las excepciones para controlar lógica de programación. Por ejemplo: si creo para mi capa de negocio una excepción BusinessException para representar una condición de error en algún cálculo de la capa de negocio, eso está MAL!.
En lugar de eso debería encontrar otra forma como el retorno de un método que realiza el cálculo, o simplemente escribir un par de líneas de código adicionales y evitar que suceda el error, después de todo, se puede prever.
Qué pasa en Java con el manejo de las excepciones
En principio, si se ejecuta un bloque try sin que aparezca ninguna excepción, no se añade ningún procesamiento extra, sin embargo, depende de la máquina virtual que estemos ejecutando. Ahora, si se atrapa una excepción en un bloque catch, tendremos un procesamiento extra significativo. Esto se debe, principalmente a que se debe analizar todo la pila de llamadas (el famoso printStackTrace()).
Generalmente, en cuanto a performance de ejecución, la ejecución una excepción puede compararse con varios cientos de líneas de código.
Les recomiendo este PDF de la Sun Java One, se titula "Java Technology Performance Myths Exposed".
También Recomiendo el libro "Java Performance Tuning" para mayor información. Pueden comprarlo pero también pueden encontrarlo en el em...., ya saben donde.
Saludos PF
3 Comments:
Oye, y si tengo metodos en mis objetos de negocio que retornan algo, pero dentro de ellos manejo muchos tipos de errores, por ejemplo, usuario no existe, no se realizo cobranza, etc, etc, como le informo a la capa de presentacion de estos errores.
Dracof:
Simplemente tienes que tener en tu clase de negocio, una colección de errores (por ejemplo, un ArrayList).
En la capa de presentación verificas si ese vector está vacío o no. Si no está vacío, muestras el error correspondiente.
De esta manera, no usamos excepciones como condicionales "if".
Saludos
Entonces ese ArrayList lo paso como argumento, si hay errores los agrego y en la presentacion lo tomo de nuevo?
Publicar un comentario
<< Home