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?
Galaxy Game
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.
PDP-1
O primeiro computador a conseguir rodar o jogo Spacewar era o PDP-1, que custava 120 mil dólares e pertencia ao Massachusetts Institute of Technology. O jogo demorou 200 horas para ser desenvolvido, em 1962, e seu criador foi um cientista da computação chamado Steve Russel.
Muitos aplicativos
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.
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.
Recorde de patentes
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.
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.
Final Fantasy X
O jogo Final Fantasy X para o Sony Playstation 2 vendeu, apenas no dia do seu lançamento, 1.455.732 cópias, estabelecendo um recorde de vendagem para as primeiras 24 horas de um game. Méritos da SquareSoft, que desenvolveu um excelente produto!
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.
Ultima Online
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
Mouse
O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.
Mega Man
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.