Validar Formulário por Try e Catch
Página 1 de 1
Validar Formulário por Try e Catch
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:
- Exceções de Banco de Dados;
- Exceções de Valores Nulos;
- Exceções de Memória;
- Exceções de Indexes em Vetores ou Matrizes;
- 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[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
[Tens de ter uma conta e sessão iniciada para poderes visualizar 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[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
[Tens de ter uma conta e sessão iniciada para poderes visualizar 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:
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.
throw new Exception();
O resultado disto para o usuário é o seguinte:[Tens de ter uma conta e sessão iniciada para poderes visualizar 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: [Tens de ter uma conta e sessão iniciada para poderes visualizar 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...
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|