Tratamento de excecao

ae, tou precisando luz de como usar o tratamento de excecao!

assim criei umas classes e objetos Candidatos a Prefeito e vereador
e na hora de votar… tou utilizando JOptionPane.showInputDialog…

como criar um tratamento de excecao, para que na hora que votasse
num candidato a prefeito, so pudesse digitar inteiros com 2 digitos, nao aceitar cacter, e quando clicasse no cancelar nao desse pau, ou quando clicasse no cancela poderia apagar o q foi digitado

aqui ta um pedaço do codigo

[code]
public void computaVoto(int votoPrefeito, int votoVereador){

    for(int i=0;i<arrayPrefeito.length;i++){
        if(votoPrefeito==arrayPrefeito[i].getNumeroCandidato()){
            arrayPrefeito[i].setNumeroVotos(arrayPrefeito[i].getNumeroVotos()+1);
        }
    }
    
    for(int j=0;j<arrayVereador.length;j++){
        if(votoVereador==arrayVereador[j].getNumeroCandidato()){
            arrayVereador[j].setNumeroVotos(arrayVereador[j].getNumeroVotos()+1);
        }
    }
                    
}

public static void main(String[] args) {


int votoPrefeito,votoVereador;
Eleicao Eleicao2004 = new Eleicao();

while(true){
    
votoPrefeito = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o voto para Prefeito"));
votoVereador = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o voto para Vereador"));
    
    if(votoPrefeito==99 && votoVereador==99999)
        break;
    else
        Eleicao2004.computaVoto(votoPrefeito,votoVereador);
        JOptionPane.showMessageDialog(null,"FIM");
}

System.exit(0);

}[/code]

flw ae
Dirceu

não manjo mto, mas uma mascara não resolveria?

Olá Amigo!!

Eu implementaria da seguinte forma.

Pegaria o voto como uma String e faria o seguinte método:

[code]public int validaVoto(String votoString,boolean prefeito) throws ExcecaoCaracter,ExcecaoTamanho
{
int votoInt;
int qtdNumeros;

       if (prefeito)
       {
             qtdNumeros=2;
       }
       else
       {
             qtdNumeros=5;
       }                 

       if(votoString.lenght==qtdNumeros)
       {
              try
              {
                     votoInt = Integer.parseInte(votoString);
              }
              catch(NumberFormatException  e)
              {
                     Throw new ExcecaoCaracter(); 
              }
      }
      else
      {
              Throw new ExcecaoTamanho(); 
      }

      return(votoInt);

}[/code]

Lógico que você também vai ter que criar as classes com as exceções. Aprender a criar uma nova exceção é muito fácil, e caso vc não saiba, qqer busca em artigos e tutoriais ensina.

Espero que Ajude.

Abraços!

}

olá

no caso eu aconselharia vc fazer um JFrame certinho, e colocar nele o componente JFormattedTextField, vc pode definir uma mascara

ex:

JFormattedTextField txtPrefeito = new JFormattedTextField(new MaskFormatter("##"));

JFormattedTextField txtVereador = new JFormattedTextField(new MaskFormatter("#####"));

ps: o código pode não compilar, mude os nomes das classes para o os nomes corretos se não compilar