Tratamento de excerção

2 respostas
G

Pessoal estou tentando fazer o seguinte metodo: Se a pessoa digitar um inteiro funciona normal, mas se ela digitar qualquer tecla sem que seja um inteiro, da um loop infinito, como eu faça para não acontecer isso, e quando eu digitar uma caractere que não seja um inteiro volte e peça novamente para inserir os numeros.

public  void  leitura( ){
		input = new Scanner(System.in);
		do{
			try{
				System.out.println("Digite a linha(1 ,2 ou 3)");
				linha = input.nextInt();
				System.out.println("Digite a linha(1 ,2 ou 3)");
				coluna = input.nextInt();
			}catch(Exception e){
                                linha = 4; coluna = 4;
				System.out.println("Valor Errado");
				
			}
			
		}while(linha>3||linha<1||coluna>3||coluna<1);
		
	}

2 Respostas

alarangeiras

Olá,

Não posso te dizer o porque de estar dando esse problema, somente analisando a fundo a classe e especificamente este método.
Porém eu corrigi desta maneira, não sei se é o seu propósito

public void leitura( ){
		Scanner input = new Scanner(System.in);
		int linha = 0, coluna = 0;
		do {
				try {
					System.out.print("Digite a linha(1 ,2 ou 3): ");
					linha = Integer.parseInt(input.nextLine());
					System.out.print("Digite a coluna(1 ,2 ou 3): ");
					coluna = Integer.parseInt(input.nextLine());
				}
				catch (NumberFormatException ex) {
					System.out.println("Argumento Incorreto");
					continue;
				}
		} while(linha>3||linha<1||coluna>3||coluna<1);  
    }

Espero que tenha ajudado.

Abraços

G

Amigo,

era isso mesmo que eu estava querendo. Obrigado pela dica.

cara, existe algum comando que limpa a tela do console no eclipse? (como cls do pront do dos)

Criado 2 de novembro de 2008
Ultima resposta 2 de nov. de 2008
Respostas 2
Participantes 2