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?

A IBM detém o recorde de patentes em um único ano, atingindo a marca de 4186 registros no ano de 2008. Clique aqui e saiba mais sobre esta gigante do mundo da tecnologia.


O título Tetris detém o recorde de jogo mais adaptado de todos os tempos. No total foram mais de 60 plataformas diferentes que receberam alguma versão do quebra-cabeças criado por Alexey Pajitnov. Conheça mais sobre este incrível jogo clicando aqui.


Instalar vários aplicativos com o mesmo propósito, como editores de texto, reprodutores de músicas ou vídeos e até programas antívirus sobrecarregam o seu sistema operacional e ainda ocupam espaço desnecessário em seu HD. Tenha apenas um bom programa para cada função.


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.


Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras


Considerando todas as adaptações de jogos de videogame para o cinema, a mais bem sucedida foi Lara Croft: Tomb Raider, lançado em 2001 e que faturou 274 milhões de dólares. Ele foi dirigido por Simon West e estrelado pela bela Angelina Jolie.


As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.


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.


A primeira versão do clássico Mega Man, para Nintendo 8 bits, tem seu recorde de pontos estabelecido em 03/11/2006, por David Archey, que cravou 2.396.700 pontos, terminando o jogo.


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