Ref.: Criando Exceções

Caríssimos,

       Venho por meio desta .......... (Ah!, deixe de palhaçada)

       A parada é o seguinte:

       Desenvolvi uma classe, certo!?

       Pois bem!

       Esta por sua vez recebe como parâmetro um HashMap.

       OK?

       Tenho que saber se no interior do tal Hash, existe um item em especial, caso o mesmo não esteja contido no Hash, devo fazer como?

       Runtime ERRO ou, trata-lo?

       O problema é que não sei como tratar exceções desse tipo.

        Quem pode me ajudar?

Cria um construtor como:

[code]public SuaClasse(HashMap<String, String> map) {
if (!map.contains(“ItemEspecial”))
throw new IllegalArgumentException(“O mapa deve conter o ItemEspecial!”);

//E aqui vc põe o resto do seu construtor.

}[/code]

O tipo da key e value no exemplo é String, mas isso vc adapta para sua necessidade.

Valeu Godoy!

Só mais uma pergunta:

No caso de NEGATIVO, o vai acontecer?

O Aplicativo vai para ou, voltar para o seu ponto de chamada à CLASSE?

Sim, o programa volta no ponto anterior a classe.
Se lá não tiver nenhum try… catch, ele volta no ponto anterior novamente.
E vai fazendo isso por toda a call stack.

Se nenhum ponto for encontrado, o mecanismo de erro padrão do java assume, imprime o erro no console e, se eu não me engano, finaliza a thread que gerou o erro.

Você pode alterar o mecanismo padrão usando o método Thread.setUncaughtExceptionHandler.

Sugestão de leitura:
http://blog.caelum.com.br/2006/10/07/lidando-com-exceptions/