Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/02/2015, 20:53
robespinosa90
 
Fecha de Ingreso: enero-2015
Ubicación: Guayaquil
Mensajes: 17
Antigüedad: 9 años, 3 meses
Puntos: 0
Información Controlar excepcion nullpointerexception

Buenas noches.

Tengo el sgte codigo que utilizo para el login pero me arroja un error cuando el usuario no existe y se va por el nullpointerexcepction aunque no causa que el programa se detenga desearia saber como puedo controlar esta excepcion de alguna mejor manera, aqui dejo el codigo.

Código:
public ResultSet cargaAcceso(String user, String pass) {
        try {
            cn = conectaMYSQL.getIntance().getConnection();
            ps = cn.prepareStatement("SELECT * FROM usuario WHERE (usu_usuario = '" + user + "' AND usu_contrasena = '" + pass + "')");
            rs = ps.executeQuery();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
            Logger.getLogger(AccesoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return rs;
    }
    
    UsuarioTO a ;
    public UsuarioTO logear(String user, String pass) {                
        sql = "SELECT * FROM usuario WHERE (usu_usuario = '" + user + "' AND usu_contrasena = '" + pass + "')";
        Object[] filaObt = operacionDAO.getFila(sql);
        try {
            if (filaObt != null) {
                a = new UsuarioTO();
                a.setId(Integer.parseInt(filaObt[0].toString()));
                a.setCodigo(filaObt[1].toString());
                a.setNombre(filaObt[2].toString());
                a.setUsuario(filaObt[3].toString());
                a.setContrasena(filaObt[4].toString());
                a.setIp(filaObt[5].toString());
                a.setPerfil(filaObt[6].toString());
                System.out.println("Usuario Correcto");                                
            } else {
                JOptionPane.showMessageDialog(null, "No existe el Usuario Asociado");                                
                AccesoGUI.txtUsuario.setText("");                
                AccesoGUI.txtContraseña.setText("");
                AccesoGUI.txtContraseña.setEnabled(false); 
                AccesoGUI.txtUsuario.requestFocus();
            }
        } catch (NullPointerException ex) {
            JOptionPane.showMessageDialog(null,ex.getMessage());
            Logger.getLogger(AccesoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return a;
    }

    public String perfil(String user, String pass) {
        
        sql = "SELECT usu_perfil FROM usuario WHERE (usu_usuario = '" + user + "' AND usu_contrasena = '" + pass + "')";
        rs = cargaAcceso(user ,pass);
        try {
            while (rs.next()) {
                String add = rs.getString(7);
                resul = add;
                //JOptionPane.showMessageDialog(null,"Usted es : " +resul);                    
            }
        } catch (SQLException | NullPointerException ex) {
            JOptionPane.showMessageDialog(null,ex.getMessage());
            Logger.getLogger(AccesoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return resul;
    }

    String resul,perfi;
    
    public boolean acceder(String usuario, String clave, JTextField t1, JTextField t2) {
        flag = false;
        usuario = t1.getText();
        clave = t2.getText();
        usuarioTO = logear(usuario, clave);        
        try {            
            perfi = perfil(usuario, clave);            
            switch (perfi) {
                case "Administrador":
                    if (usuarioTO.getIp().equals(ipdao.getIP())) {
                        JOptionPane.showMessageDialog(null, "ad", "Cuadro de Advertencia", JOptionPane.QUESTION_MESSAGE);
                        JOptionPane.showMessageDialog(null, "Bienvenido al Sistema", "Cuadro de Advertencia", JOptionPane.QUESTION_MESSAGE);
                        flag = true;
                        gui.setVisible(true);
                        AccesoGUI.estado = 1;
                        MenuAdministradorGUI.lblMensaje.setText(usuario);
                    } else {
                        JOptionPane.showMessageDialog(null, "Datos Erroneos Adm", "Cuadro de Advertencia", JOptionPane.ERROR_MESSAGE);
                        AccesoGUI.lblMensaje.setText("Su Dirección IP no esta Autorizada para el Acceso");
                        t2.setText("");
                        t1.setText("");
                        t1.requestFocus();
                    }   break;
                case "Usuario":
                    if (usuarioTO.getIp().equals(ipdao.getIP())) {
                        JOptionPane.showMessageDialog(null, "user", "Cuadro de Advertencia", JOptionPane.QUESTION_MESSAGE);
                        JOptionPane.showMessageDialog(null, "Bienvenido al Sistema", "Cuadro de Advertencia", JOptionPane.QUESTION_MESSAGE);
                        flag = true;
                        guiu.setVisible(true);
                        AccesoGUI.estado = 2;
                        MenuUsuarioGUI.lblMensaje.setText(usuario);
                    } else {
                        JOptionPane.showMessageDialog(null, "Datos Erroneos User", "Cuadro de Advertencia", JOptionPane.ERROR_MESSAGE);
                        AccesoGUI.lblMensaje.setText("Su Dirección IP no esta Autorizada para el Acceso");
                        t2.setText("");
                        t1.setText("");
                        t1.requestFocus();
                }   break;
            }            
        } catch (NullPointerException ex) {
            JOptionPane.showMessageDialog(null,"Error"+ex.getMessage());
            Logger.getLogger(AccesoDAO.class.getName()).log(Level.SEVERE, null, ex);
            flag = false;
        }
        return flag;
    }
Saludos.