Nao entendo o q acontece

pessoal é o seguinte , tenho uma classe FuncionarioDAO que possui o seguinte metodo de login :

public String verificarFuncionario(Funcionario f) {

		try {
			conn = bd.conecta();
			String sql = "select nome from T_Usuario u, T_Funcionario f" +
					" where matriculasee = ? and senha = ? and cargo = 'A' " +
					"and u.idEndereco = f.idusuario  ";

			PreparedStatement st = conn.prepareStatement(sql);

			st.setString(1, f.getMatriculaSEE().toUpperCase());
			st.setString(2, f.getSenha());

			ResultSet rs = st.executeQuery();
			rs.next();
					String usuarioLogado = rs.getString("nome");
			usuarioLogado.toUpperCase();
			st.close();
			conn.close();
			rs.close();

			return usuarioLogado;
		} catch (SQLException erro) {
			erro.printStackTrace();
			return "erro";
		}// try

	}

no servletfuncionario possuo o seguinte trecho:

String usuarioLogado = fDao.verificarFuncionario(f);
	if (usuarioLogado.equals("erro")) {
	address = "login.jsp";
							} else {	
	       address = "frame.jsp";
	}// ELSE

andei testando com o banco fora do ar e na minha opiniao como gera uma SQLException era pra ele redirecionar pra pagina de login e mostrar a mensagem login/senha errado, mas ele manda pra uma pagina em branco. como contorno esse problema ?