Exception + Sender


Hoje falaremos um pouco sobre tratamento de excessões e sobre o objeto Sender.

Exceptions

Para fazermos o tratamento de excessões utilizaremos o Try Catch do c#.
É muito simples e muito importante também, vamos a uma demonstração.

Definições:
Try = tenta
Catch = pega

Estrutura:

  Try
  {
      //Entao aqui vem o seu codigo e se houver algum excessão ( erros ) e ele cairá no Catch conforme
      // exemplo abaixo onde estamos tentando converter uma string para int.
      string texto = “Teste”;
      int numero = Convert.ToInt32(texto);
  }
  Catch(Exception ex)
  {
      //Cai estamos tratando o erro e mostrando na tela.
      Console.WriteLine(“Ocorreu um erro : ” + ex.toString());
    
  }

Podemos ter varios tipo de excessões desde SQL como uma simples conversão como mostrada acima.
Sempre devemos colocar os catchs (excessões) da mais complexa para a mais simples, no caso a mais basica (simples ) é a somente Exception. Portanto poderemos ter varios Catch ( cada um com seus exception especifico) para cada Try. Então você dera dizer “Se ocorrer um erro de SQL faça isso” , “Se ocorrer um erro de dados faça isso” e assim por diante.

Mas Lineker, como posso ver qual foi o erro ?
Quando você coloca “Catch(SQLException ex)” , ex pode ser qualquer nome que você quiser, estaremos atribuindo a excessão ao objeto ex. Se quisermos mostrar na tela o erro vamos passar o ex.toString() para aonde desejarmos. Dica: use o intellinsense para ver a propriedades das excessões ( ex: ex.[ira aparecer as propriedades])


Sender

Você perceberá este objeto quando criar um evento para por exemplo um botão. Faça o teste crie um projeto windows form, coloque um botão na tela e clique 2 vezes nele e você verá:
 
               private void button1_Click(object sender, EventArgs e) {  }

O sender nada mais é do que o objeto em si, neste caso o button.
Então se por exemplo você quer mudar a cor do botão quando ele for clicado usando o sender ficaria assim:

 private void button1_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            btn.BackColor = Color.Red;
        }

Claro que essa aplicação é simple e não faz muito sentido pois poderiamos fazer isso de maneira muito mais facil mas espero ter ajudado e esclarecido algumas duvidas dos novatos.

Abraços

Lineker Tomazeli

Sobre tomazeli

Developer passionate about technology C, Python, Java, C# Ver todos os artigos de tomazeli

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: