Try/ Catch e mais aluma dúvidas

2 respostas
G

E ai pessoal tudo bem com vcs ?
Estou com um probleminha aqui ... e sou novo na linguagem

tenho o seguinte codigo:

try {	
    			String confirm1 = JOptionPane.showInputDialog("1) Calculo com peso 7 de nota.\n" +
    		        		"2) Calculo com peso 8 de nota.\n" +
    		        		"3) Calculo com peso 9 de nota.\n\nDigite a opção desejada:");
    			int confirm2  = Integer.parseInt(confirm1);
    			if (confirm2 == 1 || confirm2 == 2 || confirm2 ==3){
    				System.out.println("aeee");
    			}else {
    				//aqui;
    			}
    			
	     	
	    }catch (Exception confirm2) {
	    	JOptionPane.showMessageDialog(null, 
	    			"Digite somente o número existente nas opções!",
	    			"ERRO NA DIGITAÇÂO", JOptionPane.ERROR_MESSAGE);
	    	
	    	main(args);
	    	
	    	
		}

então minha primeira duvida é :

1) eu queria que quando a variavel ali no primeiro if fosse diferente de "1","2" ou 3 ele entra-se no else... e entrase no tratamento de erro mostrando a mensagem que ali tem ;

tipo se ele digita-se "4" apareceria "Digite somente o número existente nas opções!"

2) alguem poderia me explicar certinho o que o main(args) esta fazendo ?

[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Erko[/color][/size] :joia:

2 Respostas

P

Olá cara, se não estou enganado para você disparar uma exeção no catch você terá que usar a classe NumberFormatException. No entanto somente será disparada essa exeção se for digitado algum valor que não seja um numero.

Como sujestão para resolver o seu problema, utilize o switch(), veja o codigo abaixo.

import javax.swing.JOptionPane;

public class Teste {
	
	public static void main(String args[]) {
		
		String confirm1 = JOptionPane.showInputDialog("1) Calculo com peso 7 de nota.\n" +
        	"2) Calculo com peso 8 de nota.\n" +
            "3) Calculo com peso 9 de nota.\n\nDigite a opção desejada:");
            
        int valor = Integer.parseInt(confirm1);//converte o valor para inteiro
            
        switch(valor) {
        	case 1: System.out.println("aeee");break;
        	
        	case 2: System.out.println("aeee");break;
        	
        	case 3: System.out.println("aeee");break;
        	
        	default: JOptionPane.showMessageDialog(null,
        					"Digite somente o número existente nas opções!",
        					"ERRO NA DIGITAÇÂO", JOptionPane.ERROR_MESSAGE); break;
		}
		System.exit(0);
	}
}

Testa o codigo ae.

Até mais, Filipe.

S

O mais correto seria você fazer aquilo que o phill disse, entretanto, para todos os efeitos, podes tentar isso:

try {    
             String confirm1 = JOptionPane.showInputDialog("1) Calculo com peso 7 de nota.\n" + 
                        "2) Calculo com peso 8 de nota.\n" + 
                        "3) Calculo com peso 9 de nota.\n\nDigite a opção desejada:"); 
             int confirm2  = Integer.parseInt(confirm1); 
             if (confirm2 == 1 || confirm2 == 2 || confirm2 ==3){ 
                System.out.println("aeee"); 
             }else { 
                throw new Exception("Digite Somente o número existente nas opções!");
             } 
              
            
       }catch (Exception confirm2) { 
          JOptionPane.showMessageDialog(null, 
                confirm2.getMessage(), 
                "ERRO NA DIGITAÇÂO", JOptionPane.ERROR_MESSAGE); 
           
          main(args); 
           
           
      }

É necessário algumas alterações lógicas…

Criado 15 de maio de 2007
Ultima resposta 15 de mai. de 2007
Respostas 2
Participantes 3