Tratamento de NullPointerException [URGENTE]
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:
CLASSE DAO:
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
Curtidas 0
Respostas
Jones Granatyr
06/12/2016
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
GOSTEI 0
Raylan Zibel
06/12/2016
Tudo bem ter essa linha depois do salvar/commit:
Porém "despesa" precisa ser instanciada antes de ser usada também. Aqui parece que ela não foi ainda:
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);GOSTEI 0