método substituído não gera exceção

Eu tenho um problema ao compilar meu código, estou tentando fazer com que um método de uma classe lance uma exceção personalizada, dadas algumas condições. Mas, no momento da compilação, recebo a mensagem:

O método substituído não gera exceção

Aqui está a declaração de classe e exceção:

public class UNGraph implements Graph

Graph é uma interface com todos os métodos deUNGraph nele (o métodogetId() não tem othrows declaração nesse script)

Após o construtor, crio a exceção (dentro da classe UNGraph):

public class NoSuchElementException extends Exception {
    public NoSuchElementException(String message){
        super(message);
    }
}

Aqui está o método com a exceção

public int getId(....) throws NoSuchElementException {
    if (condition is met) {
        //Do method
        return variable;
    }
    else{
       throw new NoSuchElementException (message);
    }
}

Obviamente, não quero que o método gere uma exceção todas as vezes, apenas quando a condição não for atendida; e quando for atendido, quero retornar uma variável.

questionAnswers(3)

yourAnswerToTheQuestion