fausto, faça o seguinte... pegue a exceção original, aquela definida na interface.... vamos supor que a interface esta escrita assim
public void metodo() throws InterfaceException;
veja que isso é uma suposição, troque toda ocorrencia daqui para frente de InterfaceException, para o nome da exeção que existe na sua interface.... e troque a asisnatua metodo() pelo método que vc esta implementando...
na sua implementação... vc fala
public void metodo() throws InterfaceException {
try {
//... faça todas as suas operações normalmente
} catch (Exception e) {
//... Aqui vc vai segurar as exceções que ocorrerem dentro do q vc fizer, na variável "e"
/**
* ... então vc vai criar 1 nova exceção, do mesmo tipo da assinatura da interface,
* e vai amarrar a exceção real, que ocorreu aqui, na exceção que vc esta criando.
*
* vc pode recuperar essa exceção mais tarde pelo comando getCause(), de exceções,
* neste caso aqui, vc esta afirmando que houve uma exceção do mesmo tipo do que esta
* na assinatura da interface, porem que esta exceção se deu, causada por um outra exceção
* que vai amarrada em "cause".
*
* veja que toda exceção descente teu seu construtor Exception(String message, Throwable cause)
*/
throw new InterfaceException("Houve uma exceção, não previsa, veja a causa em getCause",e);
}
}
alguem mais pra cima ja tinha dado essa solução, mais vc não tinha compreendido direito que o suaexception que ele falava era a exceção da assinatura do seu método
abraços