Este é um post disponível para assinantes MVPArtigo .net magazine 70 - Tratamento de exceções
Este artigo mostra como manipular exceções em aplicações .NET (aplicações Windows Forms e Web). No decorrer do artigo serão apresentadas as técnicas para tratamento de exceções em nossas aplicações e também as técnicas para lançar exceções (para validar uma regra de negócios por exemplo). Veremos também cromo criar nossas próprias exceções derivando de System.Exception.
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da .net Magazine 70
Tratamento de exceções
Aprenda a manipular exceções em suas aplicações ASP.NET e Windows Forms
Neste artigo veremos
O tratamento de exceções é um assunto extremamente importante em qualquer tipo de aplicação, seja desktop, web, mobile etc. Imagine que o usuário está trabalhando em sua aplicação e de repente alguma exceção é lançada e a aplicação é fechada. É claro que nem sempre é possível se recuperar de uma exceção. Porém, é sempre interessante mostrar ao usuário uma mensagem amigável e evitar que a aplicação prossiga evitando assim que informações inconsistentes sejam geradas.
Um primeiro exemplo
Em um primeiro exemplo veremos uma aplicação desktop simples (veja a Figura 1) sem tratamento de exceções, que soma dois números digitados pelo usuário em duas caixas de texto. Aparentemente nenhum erro poderia ocorrer, afinal somar dois números é uma operação trivial, não exigindo nenhum tipo de regra. O código exibido na Listagem 1 é executado após o usuário clicar no botão “Calcular”.
Listagem 1. Código executado após o usuário clicar no botão “Calcular”
private void btnCalcular_Click(object sender, EventArgs e)
{
int calculo;
calculo = Convert.ToInt16(txtNumero01.Text) +
Convert.ToInt16(txtNumero02.Text);
txtResultado.Text = calculo.ToString();
}
Ao executar o código da Listagem 1 utilizando os seguintes valores: 32.767 para o valor 1 e 1 para o valor 2 (conforme pode ser visto na Figura 2) o .NET Framework lança a exceção vista na Figura 3. O que aconteceu foi o seguinte: Um Int16 em C# aceita valores na seguinte faixa: -32.768 até 32.767. Ao digitarmos 32.768 a instrução falhou no momento de converter o valor 32.768 para um Int16:
calculo = Convert.ToInt16(txtNumero01.Text) + Convert.ToInt16(txtNumero02.Text);
Um trecho de código que aparentemente não poderia causar problemas acabou por lançar uma exceção OverflowException, que poderia ser tratada mostrando ao usuário que as informações estão incorretas e pedindo a ele que digite valores válidos. Neste caso o não tratamento da exceção fez
Figura 2. Executando aplicação de exemplo
Figura 3. Exceção OverflowException lançada pelo .NET Framework
Instruções unchecked
Em instruções
Listagem 2. Uso da instrução unchecked
static void Main(string[] args)
{
int a = int.MaxValue; // Valor máximo de um int em C#
int b = 0;
unchecked // As instruções executadas neste bloco não lançarão a exceção OverflowException
{
b = a + 10; // Aqui ocorre uma exceção OverflowException
}
Console.WriteLine("Valor de a: {0}\n", a);
Console.WriteLine("Valor de b (a + 10): {0}\n", b);
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Space do autor


0
0
