Try/ Catch e mais aluma dúvidas

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

tenho o seguinte codigo:

[code]
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);
    	
    	
	}[/code]

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!”

  1. 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:

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.

[code]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);
}

}[/code]

Testa o codigo ae.

Até mais, Filipe.

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…