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:
O código do botão “Efetuar Divisão” ficou da seguinte forma:
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:
Vejam o que acontece quando clico no botão para efetuar a divisão:
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:
{
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:
Agora vou tentar executar o programa e realizar a mesma divisão por zero que havia gerado a interrupção abrupta anteriormente.
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:
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:
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:
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.
Você Sabia?
Mario e seu bigode

O personagem Mario só possui bigode porque quando ele foi criado, em 1981, a resolução de tela dos equipamentos disponíveis não permitia que fosse desenhada uma boca, então os desenvolvedores fizeram o grande bigode para contornar essa limitação tecnológica.
ENIAC

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.
Nintendo Entertainment System

O console Nintendo Entertainment System (NES), da Nintendo, detém o recorde de videogame mais clonado em todo o mundo. Já foram catalogados mais de 300 aparelhos diferentes capazes de reproduzir seus jogos! Saiba mais sobre ele aqui.
Mortal Kombat - O Filme

O filme Mortal Kombat, inspirado no jogo de mesmo nome, faturou 23 milhões de dólares apenas no fim de semana de estreia nos EUA. Ainda sobre este título de sucesso, outra cifra que impressiona é o faturamento ao longo do primeiro ano: 1 bilhão de dólares no mundo todo.
Mario em Donkey Kong

O personagem Mario surgiu pela primeira vez no mundo dos games em um jogo chamado Donkey Kong, lançado em 1981. Mario, que naquela época se chamava Jumpman, não era o personagem principal do jogo, mas ele se tornaria um dos mais famosos personagens do mundo dos games. Saiba mais.










