Quando evitar validação de parâmetros

 

Normalmente procuramos sempre validar os parâmetros de entrada de funções e subs, imaginando que isso garantirá o bom funcionamento do nosso código.

Mas nem sempre isso é verdade. Quando estamos criando funções ou subs que serão de uso interno do sistema então a validação apenas está protegendo o código contra o programador que irá utilizá-lo e não contra o usuário. Em geral a validação nesses casos só pega erro enquanto o sistema está em desenvolvimento e não quando já está em produção.

Isso faz com que o sistema em produção perca tempo realizando validações que não precisariam ser realizadas em produção, apenas em desenvolvimento.

E qual a solução para esse problema?

A solução para isso é criarmos uma codificação que possa ser executada apenas em tempo de depuração, mas que seja eliminada da versão de release da aplicação. Existe uma forma simples de fazer isso. Veja esse pequeno exemplo:

 

Sub teste (x integer)

#if DEBUG then

  if x<10 then

  throw new exception("passou parâmetro errado")

  end if

#end if

  msgbox(x*2)

end sub

 

Neste exemplo o código que está isolado pelo #if só existirá na aplicação quando a aplicação for gerada na forma de DEBUG. Quando for gerada a aplicação na forma de Release esse trecho de código não será incluído no Assembly.