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

Validar ou tratar exceção?

1) Ao invés de deixar dar uma exceção o certo não seria validar para que a pessoa não inserisse um número menor ou igual a 0? Não entendi quando tratar com exceção e quando validar. Porque imagine que eu fosse gerar uma exceção para cada código meu:

Nome não pode ser vazio, ai gera uma exceção.
Cpf não pode ser vazio ai gera uma exceção.

Entende? Pra mim acho mais fácil validar antes.

2) Quando fizemos:

catch(RuntimeException | DivisionByZeroError $problema){
        echo $problema->getMessage() . PHP_EOL;
        echo "Erro" . PHP_EOL;
    }

A mensagem venho o padrão em inglês. Tem como mudar para português?

5 respostas
  1. o certo não seria validar

É literalmente isso que estamos fazendo. Estamos validando a informação e lançando uma exceção se a validação falhar.

  1. Tem como mudar para português?

Não. Essas mensagens são da própria linguagem.

Boa tarde. Eu digo assim pensando num sistema web. Não seria melhor impedir que a pessoa escrevesse nome vazio num formulário ao invés de esperar enviar o formulário para aí então validar com uma exceção? Não seria melhor validar antes?

Como você validaria sem lançar exceção? Não estou entendendo sua dúvida...

Não sei se a palavra certa é validar, mas em um formulário web (que foi o exemplo que eu dei) eu poderia colocar no html um required para não permitir nome vazio. Eu digo de impedir que o usuário digite coisas que nosso sistema não aceite antes que essas informações cheguem no meu controlador.

solução!

Mas Karolina, basta o usuário apertar F12 e remover o atributo required pra essa validação deixar de existir. Validação no front-end não é confiável, nunca. Toda validação necessária deve também ser implementada no back-end. Front-end é manipulável pelo cliente de forma muito simples e fácil.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software