Livrando meu código de blocos try/catch

2 respostas
Ricardo_Siqueira

Galera é o seguinte. Eu tenho um método que precisa verificar se o nome e login de usuário já existem antes de cadastrar o fulano.
Aqui no Guj mesmo me foi sugerido usar um bloco try/catch na inserção e colocar o código de erro de duplicidade do meu banco como condição.
O problema é que existem 3 registros que não podem ter duplicata e eu quero lançar uma OptionPane indicando o que está duplicado.
Significaria que eu teria de colocar um bloco try/catch pra cada inserção. Existe um modo mais "limpo" de se fazer isso? Segue um código de exemplo do q eu to falando.

private void gravar(){
    	String login, func, nome, perfil, senha, grupo;
    	try {
    		//insere login
    		
    		
    	} catch(SQLException ex){
    		
            if(ex.getErrorCode() == 1062){
            
            	JOptionPane.showMessageDialog(jLabel1, "Já existe um usuário cadastrado com este login, por favor escolha outro");
            	
            }else{
                ex.printStackTrace();
                System.out.println(ex.getMessage());
            }
        }
    	
    	try {
    		//insere nome
    		
    		
    	} catch(SQLException ex){
    		
            if(ex.getErrorCode() == 1062){
            
            	JOptionPane.showMessageDialog(jLabel1, "Já existe um usuário cadastrado com para este funcionário");
            	
            }else{
                ex.printStackTrace();
                System.out.println(ex.getMessage());
            }
        }
    	
    	try {
    		//insere o resto
    		
    		
    	} catch(SQLException ex){
    		
                           ex.printStackTrace();
                System.out.println(ex.getMessage());
            }
        }
    	
    	
    }

2 Respostas

T

Código repetido sugere “refactoring”, ou seja, você pode criar um método para inserção que receba a query e a mensagem de erro e trate o “try/catch”, e você pode chamar esse método 3 vezes nessa sua rotina “grava”.

Beren

hmm… coloca na assinatura do metodo throws Exception :roll: :lol:

Criado 20 de abril de 2006
Ultima resposta 20 de abr. de 2006
Respostas 2
Participantes 3