Teste de variável

Tenho o seguinte código

for (int i=0 ; i<numEleitores ; i++){

		//Mensangem informando ao eleitor quais candidatos e números respectivamente
		JOptionPane.showMessageDialog(null,"Você deverá escolher o número do candidato");
		String opcao = JOptionPane.showInputDialog(null,"Candidato 1:" + "  " + cand1Name + " - " + "Número:"
				+ "  "+ cand1Num + "  " + "\n Candidato 2:" + "  "+ cand2Name +" - " + "Número:"+ "  " + cand2Num );
		int escolha = Integer.parseInt(opcao);
		
		if (opcao.compareTo(" ") == 0){ 
			JOptionPane.showMessageDialog(null,"Voto em branco!"); 
			int votoBranco = 0; 
			votoBranco = votoBranco + 1; 
			 
			} 

		
		//Testa se usuário digitou número do candidato inválido
		if ( escolha != cand1Num &amp; escolha != cand2Num){
			JOptionPane.showMessageDialog(null,"Número inválido! Digite novamente");
			i--;
		}
		
		//Conforme a opção de votação é armazenada nas variáveis dos candidatos
		if (escolha == cand1Num) {
				votoCand1 = votoCand1 + 1;
		}
		 		else{
				votoCand2 = votoCand2 + 1;
			
		}
		
		}

Estou tentando testa a variável OPÇÃO para saber se usuário votou em branco e com isso armazenar na variável VOTOBRANCO. Mesmo que o usuário não digite nada a aplicação fecha. Será que estou colocando o IF na posição errada ou o comando de teste está feito de forma incorreta.

Aguardo resposta dos amigos.

int escolha = Integer.parseInt(opcao);

Você não acha que vai dar um errinho aí se o usuario não digitar nada?

Tenta assim:

[code]int escolha = 0;

try{
escolha = Ingeger.parseInt(opcao);
}catch(NumberFormatException nfe){
}[/code]