Problemas na validação de data e conversão?

Eae pessoal, blz?

O código abaixo ta “fora do padrão de código”, ainda não sei como coloca-lo corretamente

Estou fazendo uma aplicação para uma disciplina na faculdade e precisei utilizar data e conversão de String para data. Até ae tudo normal.

O meu problema é que eu preciso pegar uma data escrita pelo usuário e preciso validar ela dentro de um try-catch para permitir o cadastro caso seja uma data correta ou mostrar uma mensagem de erro caso seja invalida.

Quando eu uso a função de converter de String para Date, o java pede para circundar com o try-catch e tudo normal, mas o erro nunca é capturado quando coloco uma data invalida, pelo contrário, a data é aceita e meio que é “somada”, colocando uma data que corresponderia aquela escrita pelo usuário.

Por exemplo, eu digito 32/43/2018 em vez de dar erro, ser capturado pelo try-catch e aparecer minha mensagem de erro, a data é aceita correspondendo a “Sun Aug 01 00:00:00 BRT 2021”

SimpleDateFormat df = new SimpleDateFormat(“dd/MM/yyyy”);
try {
Date dt = df.parse(tfDataNascimento.getText());
c.setDataNascimento(dt);
System.out.println(dt);//Para pegar a data
} catch (ParseException ex) {
JOptionPane.showMessageDialog(null, “Data Invalida”, “Atenção”, JOptionPane.ERROR_MESSAGE);
}

    }
    else
        JOptionPane.showMessageDialog(null, "Existe campo sem preencher", "Aviso", JOptionPane.WARNING_MESSAGE);

Agradeço desde já, obrigado.

Leia isto:

1 curtida