Olá pessoal, tenho uma dúvida que parece um pouco simples, mais gostaria de ter certeza antes de por na prática.
eu tenho como exemplo, o modelo abaixo.
Gostaria de deixar a visão livre de tratamento de excessões, só que algumas são lançadas ali.
Como e quando eu sei, qual excessão deve ficar na visão, qual tem que ficar no controller,…?
Quais exceções tratar na visão
6 Respostas
Quais exceções tem necessidade de conhecimento do usuário? Creio que todas que afetam as ações que este tenta realizar com o sistema.
Tudo o que fugir disso, pode ser apenas “logado”, sem gerar tratamento na view.
Sim, no entanto… vamos supor que eu tenha um controller Login, e um método que recebe como parâmetro um inteiro.
esse valor inteiro, será digitado pelo usuário na visão.
Caso ele não informe nenhum valor, ou entre com uma variável do tipo String, eu deveria fazer essa validação na visão, certo ?
Bom, o mais correto é fazer esse esse tratamento na classe que vai utilizar esse valor (no método setXXX caso você tenha um) e esse método lançar uma exceção que será tratada na view.
No modelo, você diz ?
Há quem seja mais purista e diga que toda exceção deve ser, obrigatoriamente, por quem chama e não onde ela ocorre.
Levando ao pé da letra, toda exceção deve ser tratada na camada de visão.
Com relação à exceção de negócio, como é o caso do usuário informar abc no campo cpf, pode-se haver um controle prévio na view. Agora, isso é definido no início do desenvolvimento do projeto.
Eu costumo tratar toda exceção do tipo validaçao de campo, campo obrigatorio , todas aquelas que podem ser causadas pelo usuario nos dois locais, na view com js e na controller, faço nos dois para que se for necessario lançar a msg de erro, uso o processamento do proprio navegador do cliente sem precisar lançar uma requisição para o meu servidor, e faço tbm na controller para não correr o risco de o usuario desabilitar o js do navegador e passar parametros errados para minha aplicação.