GARANTIR DESCONTO

Fórum Tratamento de NullPointerException [URGENTE] #572239

06/12/2016

0

Boa tarde amigos,

Preciso de uma ajuda pois tenho de apresentar um projeto TCC hoje, porém, meu projeto está apresentando NullPointerException para quando não inserimos nenhum valor nos campos de uma tela.
Ja tentei tratar da seguinte forma:

CLASSE CONTROL:

//METODO PARA SALVAR DESPESA
	public void SalvaDespesa(){

		usuario = despesadao.retornaUsuario(idUsuarioSession.getCpf());
		despesa.setUsuario(usuario);

		if(despesa.getValorDespesa() <= 0.0){

			FacesUtil.addErrorMessage("O valor da despesa não pode ser menor que 0.");

		} else {

			if(despesa.getValorDespesa()==null){

				despesadao.SalvarDespesa(despesa,usuario.getCpf());
				despesa = new Despesa();

			}else{
				despesadao.SalvarDespesa(despesa,usuario.getCpf());
				despesa = new Despesa();
			}
		}
	}


CLASSE DAO:

public void SalvarDespesa (Despesa despesa, String idUsuarioSession){

		
		try {

			EntityManagerFactory emf = Persistence.createEntityManagerFactory("calcPU");
			EntityManager em = emf.createEntityManager();


			Object cpfUsuario = em.find(Usuario.class, idUsuarioSession);
			despesa.setUsuario((Usuario) cpfUsuario);
			em.getTransaction().begin();
			em.persist(despesa);
			em.getTransaction().commit();
			despesa = new Despesa();

			FacesUtil.addSuccesMessage("Despesa adicionada com sucesso!");

		} catch(NullPointerException e){
			FacesUtil.addErrorMessage("Os campos não podem ser nulos!");
		}
	}
Salute Especializadas

Salute Especializadas

Responder

Posts

06/12/2016

Jones Granatyr

Opa! Geralmente esse erro ocorre quando um objeto não foi instanciado. Em qual linha está gerando o erro? Recomendo que você coloque um break point pra tentar descobrir em qual parte do código talvez esteja faltando instanciar algum objeto
Responder

Gostei + 0

06/12/2016

Raylan Zibel

Tudo bem ter essa linha depois do salvar/commit:
despesa = new Despesa();

Porém "despesa" precisa ser instanciada antes de ser usada também. Aqui parece que ela não foi ainda:

public void SalvaDespesa(){
 
        usuario = despesadao.retornaUsuario(idUsuarioSession.getCpf());
        despesa.setUsuario(usuario);
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar