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?
Donkey Kong

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.
River Raid

O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.
Inteligência artificial

O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.
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.
Space Invaders

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.










