• Matéria: Informática
  • Autor: Anônimo
  • Perguntado 8 anos atrás

Programação Java (básica)

Como criar Exceptions (algo simples) ?
Eu quero duas Exceptions, uma para captar respostas vazias do usuário (¨".isEmpty()") e outra para captar tamanhos maiores do que 50 caracteres (".lenght() > 50"), ambos em forma de String, claro.

Assim, poderei usar um try/catch ao invés de um monte de if's e else's.


Anônimo: ah esqueci de falar que eu não sou tenho quase nada de experiência com Jva, então, que seja uma coisa simples...
Anônimo: eu já pesquisei o assunto, mas ainda não consegui montar a classe... aliás, aqui usa-se aquele tal de Throw ? (Para forçar qualquer chamada a captar a Exception, se disparada)?
Anônimo: se for muito complexo (lembrando que n manjo nd de Java, basicamente), pode deixar

Respostas

respondido por: Gabriel2ANO
1
public class NomeException extends Exception //aqui voce vai definir qual excessao vc vai usar se vc ta manipulando um arquivo vc usa FileNotFoundException e por ai vai{

// constrói um objeto NomeException com a mensagem passada por parâmetro

public NomeException(String msg
{
super(msg);
}

// contrói um objeto NomeException com mensagem e a causa dessa exceção, utilizado para encadear exceptions

public NomeException(String msg, Throwable causa){

super(msg, causa);

}
}

codigo:

throw new NomeException ("Senha incorreta");

try {

}
catch (NomeException e){
System.out.println(e.getMessage ();
}

Console:

Senha incorreta

Anônimo: daí, na classe executora de teste, coloquei aqui o try catch
Anônimo: no try, eu tento pegar do usuário uma String x, por exemplo.
Anônimo: daí, if (x.isEmpty(){throw new EmptyException(¨"msg");}
Anônimo: if (x.isEmpty()){throw new EmptyException(¨"msg");}...
Anônimo: por fim, catch (EmptyException ex){e.getMessage();}
Anônimo: no caso, se eu tivesse o construtor com a causa (tipo Throwable), essa causa seria, nesse caso, o x.isEmpty()? pq tentei isso antes mas não funcionou pq o método isEmpty() retorna em booleano
Anônimo: acho que assim ficaria até mais organizado,se desse... mas já foi de grande ajuda !!!
Gabriel2ANO: throwable no caso vc n precisa usar vc usaria caso vc tivesse lançado uma excessao no metodo
Gabriel2ANO: throw new NomeException ("Senha incorreta",SenhaIncorretaException);//ou se caso o erro não for por ele ta vazio e sim por outra coisa
vc sim usaria
throw new NomeException ("Senha incorreta",LimiteMaximoDeCaracteresException);
Anônimo: ah ok. entendi! obrigado
Perguntas similares