Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Qual o próposito do return na mensagem de exceção com FacesContext?

Bom dia,

Na vídeo da aula 05 é solicitado que troquemos no método gravar, a Exception:

throw new RuntimeException("Livro deve ter pelo menos um Autor.");

Por:

FacesContext.getCurrentInstance().addMessage("autor", new FacesMessage("Um Livro deve ter pelo menos um Autor"));
return;

Qual é o objetivo desse return?E ele não deveria estar antes do FacesContext?

Obrigado pela atenção, Rodrigo Pereira!

3 respostas

O objetivo do return é simplesmente interromper o fluxo de execução, pois você está informando uma mensagem de erro e não quer que o restante do código seja executado.

solução!

Nesse cado acho que o próprio FacesContext.get.... já faz essa operação por que se eu tiro o return funciona da mesma forma.

As duas opções a mensagem de erro ou alerta é exibida. é como o colega falou. o return serve para interrromper a operação.

O return não deve ser aplicado antes do FacesContext pois o mesmo nunca seria executado.

Isso é importante pois é algo similar para a ordem de precedência para validações com o if com & e &&.

Se alguma operação de persistência de dados ocorrer após a mensagem de erro no mesmo fluxo uma operação de persistência de dados poderá ser executada sendo que a mesma não deveria ser executada por conta do bloqueio ou erro que aplicação retorna.

A diferença entre usar um ou outra pode também ser aplicada a justamente este comportamento. as vezes você quer executar as operações daquele fluxo mesmo que um erro ocorra.