Os comandos Try/Catch/Finally fazem parte de um extenso e importante assunto chamado tratamento de exceções. Eu não vou falar sobre isso agora, até porque desviaríamos de forma bastante significativa o foco do minicurso, mas não se preocupem. O suficiente para a continuidade do minicurso será visto e de forma que a compreensão seja garantida. Por enquanto vamos pensar nos blocos Try/Catch/Finally como uma inteligente solução para quando acontecerem erros em tempo de execução, ou seja, quando o aplicativo já estiver compilado e sendo executado.

Para demonstrar estes importantes blocos em funcionamento, criarei um pequeno aplicativo que faz a divisão de dois números, e vou, propositadamente, tentar efetuar uma divisão por zero, o que, claro, não é possível.

Vejam a interface do programa, muito simples:

Try Catch Finally

O código do botão “Efetuar Divisão” ficou da seguinte forma:

Try Catch Finally

Como vocês podem ver, é só uma simples divisão cujo resultado será exibido em uma caixa de mensagens.

Agora vou tentar realizar a execução com os seguintes números:

Try Catch Finally

Vejam o que acontece quando clico no botão para efetuar a divisão:

Try Catch Finally

O programa trava, retorna ao Visual C#, que exibe a mensagem de uma exceção gerada pela tentativa de divisão por zero. Evidentemente não podemos permitir que nossos programas travem e sejam encerrados bruscamente dessa forma. Para evitar esse comportamento é que vamos fazer uso do try/catch/finally. Observem o código abaixo:

private void btnDivisao_Click(object sender, EventArgs e)
{
int resultado = 0;
try
{
resultado = Convert.ToInt32(txtNumero1.Text) / Convert.ToInt32(txtNumero2.Text);
MessageBox.Show("O resultado da operação é: " + resultado);
}
catch
{
MessageBox.Show("Ocorreu um erro na tentativa de divisão!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}

Comentando este pequeno código, teremos:

Try Catch Finally

Agora vou tentar executar o programa e realizar a mesma divisão por zero que havia gerado a interrupção abrupta anteriormente.

Try Catch Finally

Notem que agora ocorre apenas a exibição da mensagem, mas ao clicar no botão OK a execução do programa continua normalmente.

Bem, até aqui vimos que se uma falha acontece dentro do bloco try, o código é desviado para o catch, mas não falei sobre a utilização do finally. Vou efetuar uma alteração no código para inclui-lo, mas ele não é essencial. O finally é utilizado quando você quer que, obrigatoriamente, algum código seja executado, independentemente de ter havido alguma exceção. Por não ser essencial é comum encontrarmos blocos de código fazendo uso apenas do try/catch, mas aqui vamos impor uma condição de uso. Vamos imaginar que sendo exibido o resultado correto ou a mensagem de erro, queiramos que, ao retornar para o aplicativo os campos para inserção de números sejam limpos. Dessa forma nosso código ficará assim:

Try Catch Finally

O que precisa ser entendido é que o objetivo do try/catch é evitar que uma exceção gere a interrupção abrupta do código. Sempre que houver essa possibilidade, vale a pena inserir estes blocos e, quando for necessário, o finally.

Capturando uma exceção

Vale destacar também que no caso de uma exceção acontecer e desviar a execução do código para o bloco catch, é possível capturá-la e exibi-la para o usuário ou então armazená-la em um log, caso você julgue necessário. Vejam como isso é simples de ser feito, bastando uma pequena alteração no código:

Try Catch Finally

Notem que inseri o complemento (Exception ex) ao catch. O trecho “ex” é o nome que a exceção receberá, por isso foi possível concatená-la à string da MessageBox, na sequência.

Vejam a exibição desta MessageBox na imagem abaixo:

Try Catch Finally

Notem que houve a concatenação da mensagem previamente inserida no código com a exceção gerada. Não é comum exibir esse tipo de mensagem ao usuário, pois quase sempre ela terá alguma informação técnica, mas é importante que você saiba que é possível fazê-lo. Como eu citei acima, para alguns sistemas, armazenar estes erros em logs ou então enviá-los via Internet pode ser fundamental para futuras atualizações da aplicação.

Bem, com isso vimos a importância dos blocos try/catch/finally e, agora sim, podemos começar a manipular dados no banco.


HARDWARE

Entendendo o seu computador

O que há dentro do meu computador?

Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.

  • Gabinetes

  • Placas-Mãe

  • Processadores

  • Memória

  • Fontes

  • Drives Ópticos

  • Discos Rígidos

  • SSD

  • Placas de Som

  • Placas de Vídeo

Você Sabia?

O famoso título Final Fantasy, da Square Enix, tem este nome exatamente porque se tratava da última esperança da empresa, que estava à beira da falência quando o lançou. Clique aqui e conheça detalhes dessa história.


A empresa Universal City Studios, detentora dos direitos autorais do King Kong, processou a Nintendo logo após o lançamento de Donkey Kong, pois segundo ela, o game violava os seus direitos. Ela venceu o processo e recebeu da Nintendo uma indenização de quase 2 milhões de dólares.


O ENIAC, primeiro computador valvulado do mundo, possuía 17.000 válvulas, 500.000 pontos de solda, 30 toneladas de peso e ocupava uma área de 180 metros quadrados. Clique aqui e conheça mais sobre a história dos computadores.


Excesso de barulho dentro do seu gabinete, principalmente logo que você o liga, pode ser sintoma de problemas nas ventoinhas, que podem precisar ser limpas ou trocadas. Entre em contato com um técnico de sua confiança e verifique isso o quanto antes.


O título Space Invaders, lançado em 1980, fez tanto sucesso em todo o mundo que as pessoas compravam o console Atari apenas para poderem jogá-lo em casa. Saiba mais sobre este incrível título clicando aqui.