Se condição for inválida imprimir erro, ajuda[Resolvido]

Bom,o enunciado diz que preciso imprimir erro se algumas informação for inválida. meu codigo imprime a data corretaquando todos os dados são validos,mais quando algum dado é invalido,continua imprimindo a data e deveriaapenas imprimir a palavra ERRO.

public class Exercicio14{
    public static void main(String[]args)
   {
    int diasemana, diames, mes, ano;

    String data = null, erro="ERRO";


    diasemana = Integer.parseInt(JOptionPane.showInputDialog("Entre com o dia da semana(1-7):"));
    diames = Integer.parseInt(JOptionPane.showInputDialog("Entre com o dia do mês (1-31):"));
    mes = Integer.parseInt(JOptionPane.showInputDialog("Entre com o mês (1-12):"));
    ano = Integer.parseInt(JOptionPane.showInputDialog("Entre com o ano(1900-9999):"));

    if(diasemana<1 || diasemana>7){
       System.out.println(erro);
       }
       else
       {
           switch (diasemana)
        {
         case 1: data = "Segunda-Feira, "; break;
         case 2: data = "Terça-feira, "; break;
         case 3: data = "Quarta-feira, "; break;
         case 4: data = "Quinta-Feira, "; break;
         case 5: data = "Sexta-feira, "; break;
         case 6: data = "Sabado, "; break;
         case 7: data = "Domingo, "; break;
        }
         if( diames<1 || diames>31)
           System.out.println(erro);
       else{
          data=data + diames;
           }
         if(mes<1 || mes>12)
            System.out.println(erro);
         else{
         
         switch (mes)
        {
         case 1:  data = data + " de janeiro";break;
         case 2:  data = data + " de Fevereiro";break;
         case 3:  data = data + " de Março";break;
         case 4:  data = data + " de Abril";break;
         case 5:  data = data + " de Maio";break;
         case 6:  data = data + " de Junho";break;
         case 7:  data = data + " de Julho";break;
         case 8:  data = data + " de Agosto";break;
         case 9:  data = data + " de Setembro";break;
         case 10: data = data + " de Outubro";break;
         case 11: data = data + " de Novembro";break;
         case 12: data = data + " de Dezembro";break;
        } 
         if( ano<1900 || ano>9999)
         System.out.println(erro);
         else{
             data = data +" de "+ano;
             }
           System.out.println(data);
    }
    }


    }}

se alguem puder me ajudar agradeço

Olha eu mudaria um pouco essa estrutura, você não disse que se algum dado estiver errado é para simplesmente imprimir erro? com isso eu faria um if com todos os campos para validar, se nesse único if todos fossem validos ai eu continuaria as instruções caso contrario daria a saida de erro, a não ser que queira especificar o erro ai é diferente!

Obrigado Gustavo, resolvido