Saudações Pessoal! Escrevi duas classes básicas de teste para estudar exceção. Estou forçando a barra para a exceção ser lançada pelo construtor e, em seguida, ser capturada na main. O tratamento infoma ao usuário para digitar novamente. No entanto, existe a possibilidade do usuário repetir a entrada com valor vazio . Como tratar a exceção lançada dentro do trecho catch e mostrar, mais uma vez para o usuário, que ele continua errando, sem exibir o stackTrace?
//Uma classe de Exceção
public class EmptyStringException extends IllegalArgumentException{
EmptyStringException(){
super(“O parâmetro não pode ser vazio”);
}
}
//E uma classe de teste
public class A {
String str;
A(String s){
if( s.trim().equals("") ){
throw new EmptyStringException();
}
this.str = s;
}
public static void main(String[] args) {
A a;
try{
a = new A("");
}catch(IllegalArgumentException e){
System.out.println("Erro. Digite novamente!");
Scanner s = new Scanner(System.in);
a = new A(s.nextLine());
}
System.out.println("teste");
}
}