Bloco Try, Catch com ServLets

4 respostas
joaoabi

Ola pessoal me surgiu uma dúvida interessante enquanto eu sofria com java na madrugada.

A dúvida é a seguinte é errado eu colocar uma ação para executar no bloco catch exemplo abaixo:

protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		HttpSession session = request.getSession();

		String login_form = request.getParameter("txtLogin");
		String senha_form = request.getParameter("txtSenha");

		try {
			UsuarioDAO dao = new UsuarioDAO();
			Usuario usuario = dao.obtemUsuario(login_form, senha_form);

			// Se login e senha conferirem entra na pagina de cadastro de
			// máquinas!
			if (usuario.getLogin().equals(login_form)
					&& usuario.getSenha().equals(senha_form)) {
				session.setAttribute("usuario", usuario);
				request.getRequestDispatcher("maquina.jsp").forward(request,
						response);

			}

		} catch (Exception e) { //<----- ERRADO AQUI?
			e.printStackTrace();
			session.invalidate();	
			request.getRequestDispatcher("frmlogin_erro.jsp").forward(request,
					response);

		}

	}

}

Só para constar funcionou, mas estou tentando me livrar da POG por isso a pergunta!

4 Respostas

R

N vejo problema nessa abordagem não…

A

concordo, tbm não vejo problema

R

Agora,caso vc queira fazer algo um pouco mais elegante,podia fazer algo do tipo:

if (usuario.getLogin().equals(login_form)  
                && usuario.getSenha().equals(senha_form)) {  
            session.setAttribute("usuario", usuario);  
            request.getRequestDispatcher("maquina.jsp").forward(request,  
                    response);  
  
        } else{
    throw new LoginException("Erro no login");
} 
  
    }catch(LoginException le){
       request.getRequestDispatcher("frmlogin_erro.jsp").forward(request,  
                response);
} catch (Exception e) { //&lt;----- ERRADO AQUI?  
        e.printStackTrace();  
        session.invalidate();     
          
  
    }
joaoabi

Entendi rafa, achei bem legal essa sua ideia.
Com certeza quero algo mais elegante.

O código mais bem feito possivel

Criado 3 de junho de 2012
Ultima resposta 4 de jun. de 2012
Respostas 4
Participantes 3