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?
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.
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.
Street Fighter 2
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.
Space Invaders
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.
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.
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.
Playstation
O Playstation só nasceu porque uma parceria entre Sony e Nintendo, para desenvolver uma unidade de CD para o Super Nintendo, fracassou. Clique aqui e saiba mais.
Nintendo Wii
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!
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.
Máquina de Pascal
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.
Cuidados com o notebook
Utilizar seu notebook em camas, sofás ou qualquer superfície macia pode obstruir as entradas e saídas de ar, elevando a temperatura e provocando danos a diversos componentes. Utilize-o sempre sobre uma superfície rígida. Saiba mais aqui.