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