Duvida

Agora funciona…
mais o problema é outro…

eu fiquei com wihle dentro de while… e um e igual o outro…

Tem alguma maneira de tirar isso???

sugestoes??

coloque o bloco while fora do bloco try catch!!!

coloque o bloco while fora do bloco try catch!!!

Ou melhor dizendo, o bloco try catch deve ficar dentro do bloco while. Do jeito que está agora, quando acontece uma exceção dentro do while, quem trata a exceção e um bloco try catch que está fora do escopo do while.

Se vc colocar o try catch dentro do bloco while, quando ocorrer a exeção, o código irá voltar para o bloco while, e não para o main!

isso n funciona…
pq imprime

Idade: a
Digite uma idade valida

Digite uma idade maior que 18
Idade: a
NUMBER FORMAT EXCEPTION ablablablablbalbalbalbalbal

 public static void CrearProgramador (Programador unProgramador) throws IOException {

BufferedReader in = new BufferedReader (new InputStreamReader(System.in));

System.out.println("Crear Programador:");
Programador programador1 = new Programador();
System.out.print("Nombre: ");
programador1.setNombre(in.readLine());
System.out.print("Edad: ");

while (programador1.getEdad() < 18 || programador1.getEdad() > 100) {

try {
programador1.setEdad(Integer.parseInt(in.readLine()));

System.out.println("-");
System.out.println("Digite una edad mayor que 18");
programador1.setEdad(Integer.parseInt(in.readLine()));

}
catch (NumberFormatException e) {
System.out.println("Digite una edad valida");
}

}

System.out.println("-");
System.out.println("Programador 1: \n"+programador1);
System.out.println("-");
} 

topico editado…
da uma olhada se vc puder…

vlw! :wink: