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 título Asteroids, do Atari, possui recorde de pontuação há 30 anos. Em 1982 um americano chamado Scott Safran atingiu a marca de 41.336.440. Atualmente ele faz parte de um minúsculo grupo de jogadores que conseguiram manter seus recordes por mais de 30 anos.


Até a primeira metade dos anos 90 era bastante comum que as trilhas sonoras dos games fossem criadas por mulheres e a responsável pelas músicas do clássico Street Fighter 2 foi Yoko Shimomura. Segundo ela, o ritmo "Tararirarin" da música tema do personagem Blanka, do Brasil, veio à sua cabeça enquanto ela estava no trem a caminho da Capcom.


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.


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.


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 partida mais longa do clássico Space Invaders durou incríveis 38 horas e 32 minutos e esta façanha foi conseguida por um jogador de apenas 12 anos! O jogo, claro, podia ser pausado para alimentação e descanso, mas ainda assim o recorde, estabelecido no dia 02/09/1980, ainda não foi quebrado. Saiba mais.


A Máquina de Pascal, criada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal, é reconhecida como o primeiro computador do mundo e ele foi criado com o objetivo de calcular impostos. Saiba mais.


Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.


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.


Desde o seu lançamento, em 1985, o fantástico jogo Tetris vende pelo menos 70 milhões de unidades por ano em todo o mundo! Os dados são oficiais e fornecidos pela THQ, uma das distribuidoras do título.


Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!