Validar Formulário por Try e Catch

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Validar Formulário por Try e Catch

Mensagem por Robson Alves em Dom Nov 15 2009, 02:00

Opa, fala pessoal como vão?

Você que esta cansado de lotar os seus metodos de validação com IF e Else, abaixo mostro uma forma de minimizar e até mesmo otimizar este procedimento.

Meu cenário: Visual Studio 2008 Professional, utilizando o Framework 3.0, porém esta dica funcionará do Framework 2.0 e posteriores.

Iniciando:

Todo o evento de salvar as informações em banco de dados, arquivos ou um armazenamento temporário em memória, parte do evento do botão geralmente chamado Salvar, e sempre que este evento é chamado longos metodos de validação são chamados para verificar se o usuário ao menos tenha preenchido o campo com alguma informação. Pensando nisso, o .NET possuí uma facilidade que é pouco explorada que são os blocos de Try e Catch. Estes blocos são utilizados para tratamento de exceções diversas, o que seria isto:


  1. Exceções de Banco de Dados;
  2. Exceções de Valores Nulos;
  3. Exceções de Memória;
  4. Exceções de Indexes em Vetores ou Matrizes;
  5. Exceções de Divisão Por Zero;

Em fim, toda uma gama de exceções que ocorrem geralmente. Porém você também é capaz de forçar o tratamento de qualquer tipo de exceção utilizando o:


catch (Exception ex)
Entendendo esta parte vou mostrar abaixo, como informar para o seu código que determinado campo não foi preenchido e que este gere uma exceção para o seu sistema, desta forma não permitindo que nenhuma outra ação seja tomada até que este campo encontra-se devidamente preenchido.


CodeBehind[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver este link.]
Para entendermos melhor, então no evento CLICK do botão salvar, iremos entrar em um bloco Try e chamar o método ValidaCamposObrigatorios().

Antes de ver o que este método faz, atente-se ao bloco Catch, o programa está verificando as exceções gerais, então qualquer exceção que ocorrer dentro do Try, cairá no catch, veja outro detalhe, ao lado do Exception existe a variável ex, está variável é responsável por levar algumas informações importantes da exceção gerada, como StackTrace, TargetSite, HelpLink, Message entre outros. Dentro do bloco catch nos construímos uma chama em Java script para alertar o usuário do problema encontrado.

CodeBehind[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver este link.]
Claro que ainda não fugiremos dos IFS, porém note que são muito mais simples e abaixo de cada if o comando:

throw new Exception();
Este comando forçará uma exceção no sistema, funcionando semelhante ao break do switch/case. Teste em casa, o sistema ao entrar em um dos IF, logo sairá do método de validação e passará para o bloco Catch as informações da Exceção, por exemplo a mensagem pré-determinada no exemplo acima.
O resultado disto para o usuário é o seguinte:[Você precisa estar registrado e conectado para ver esta imagem.]

O código fica mais limpo e rápido, note que ao valida com IF, todas as validações serão testadas, neste caso, o primeiro Throw New Exception forçará todo o sistema a abortar e efetuar o que foi definido no bloco do Catch e este bloco não necessariamente deve estar dentro do método de validação (Como Foi Feito).

Piadinha para Relaxar: [Você precisa estar registrado e conectado para ver esta imagem.]
Três amigos se encontram, durante um almoço...

- O que você está fazendo na vida, João (ex-executivo da Pirelli)?

- Bem... eu montei uma recauchutadora de pneus. Não tem aquela estrutura e organização que havia quando eu trabalhava na Pirelli, mas vai indo muito bem...

- E você, José (ex-gerente de vendas da Shell)?

- Eu montei um posto de gasolina. Evidentemente também não tenho a estrutura e a organização do tempo que eu trabalhava na Shell, mas estou progredindo...

- E você Orlando (ex-Gerente Executivo de uma grande empresa de Tecnologia)?

- Eu montei um puteiro.

- Um puteiro???

- É, um puteiro! É claro que não é aquela zona toda de TI, mas já tá dando algum lucro...


_________________
As palavras movem, mas são os exemplos que inspiram atitude e comportamento semelhante.

Administrador do Fórum
Analisa/Programador at Senior Solution
[Você precisa estar registrado e conectado para ver este link.]
avatar
Robson Alves
Iniciante

Mensagens : 133
Data de inscrição : 10/10/2009
Idade : 28
Localização : São Paulo

http://robsonalves.net

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum