Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Augusto

Validações e Exceções

Recommended Posts

Outra perguntinha conceitual.

 

Quando criando um mecanismo de validação, que teoricamente deveria retornar apenas valores booleanos caso o dado de entrada seja válido ou não, seria correto ou interessante ao invés de retornar um possível FALSE, disparar uma exceção informando o quê exatamente está errado naquele dado?

 

Exemplo de Momento: HTTP Headers :: Accept-Charset

 

Dado de Entrada: iso-8859-1;q=0.1234

Resultado da Validação: FALSO

Motivo: Segundo RFC 2616 Seção 3, Subseção 3.9 (link) Quality Values devem ser 1 (um) ou qualquer float de 0 a 0.999 com exatos 3 decimais.

 

Por que a idéia de disparar uma exceção?

 

No PHP, validar com um Expressão Regular é até possível, porém, preg_match() é preguiçoso a ponto de considerar um trecho de ER como:

 

[0-9]{1,2}

Isto é, qualquer número de 0 à 9 uma ou duas vezes (e nada mais) válido tanto para 0.123 quanto para 0.1234.

 

Isso força o uso de uma âncora de término ($), porém ainda segundo essa especificação, o Quality Factor é opcional, logo iso-8859-1 também e válido (e terá seu QF equivalente a um automaticamente).

 

Mas, não sei se por limitação da linguagem, uma construção como essa:

 

(ER_PARA_FLOATS)?$

Não surte efeito!

 

Então pensei em quebrar a informação de entrada, que deve ser separada por ponto-e-vírgula, e validar individualmente. Mas também não quero deixar o usuário às moscas sem saber o porquê de um possível retorno falso.

 

O que acham?

Compartilhar este post


Link para o post
Compartilhar em outros sites
que teoricamente deveria retornar apenas valores booleanos caso o dado de entrada seja válido ou não,
bacana !

seria correto ou interessante ao invés de retornar um possível FALSE, disparar uma exceção informando o quê exatamente está errado naquele dado?

seria completamente errado.

 

:lol: O dado não ser oque você queria, é uma coisa que não tem ligação nenhuma com o conceito de excessões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, pensei, pensei e de fato cheguei a conclusão de que Exceções não é bem o que eu procuro, mas ainda acho que interessante ter como mostrar, dentro vários valores passados numa mesma string qual (e talvez até porquê) algum deles foi rejeitado.

 

Que outra sugestão você sugeriria? Ah! E antes que diga, SIM, tem muito YAGNI da minha parte nisso :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.