El principio de "Throw early catch late" es el que creo que te afecta en tu caso. La respuesta es sí.
Lanza (Throw) tan pronto como te sea posible tus excepciones, por lo tanto eso implica poner los throws en las cabeceras de los métodos y captúralas (catch) tan tarde como puedas es decir cuando tengas que manejar esa excepción realmente.
De todas formas te dejo unas referencias de buenas prácticas.
http://www.javacodegeeks.com/2013/07/java-exception-handling-tutorial-with-examples-and-best-practices.html#best-practices
http://howtodoinjava.com/2013/04/04/java-exception-handling-best-practices/
Muchas gracias por la ayuda.
Hola a todos.
Tengo una duda sobre cuando lanzar excepciones a niveles superiores.
En mi aplicación, hay tareas comunes como leer base de datos, ficheros de configuración, abrir xmls, ... que se usan en varias partes de la misma. En todos los casos, si algo falla (xml incorrecto, no acceso a bd) el programa debería pararse y dar un exception, que otro programa puede necesitar.
Por tanto, debo tratar esas excepciones.
La duda me surge porque esas funciones son usadas en muchos sitios, a veces, la pila de métodos es larga hasta él. Por tanto, si lanzo la excepción hacia arriba, tengo que poner el throws en un montón de métodos y sitios.
¿Es esta la forma más correcta de hacerlo o hay otra?
Gracias por vuestra ayuda.
Saludos.