Como funcionam as Exceções C# (CSharp)
Postado em : 04/12/2015
Exceções
Diante de situações onde nosso código possa apresentar algum erro,como no caso de conversões de dados, onde o dado recebido não é o que se espera e gere um erro de exceção, devemos dividir nosso código em etapas para identificar, tratar e garantir o perfeito funcionamento do sistema.
Entendendo o método try
.
Blocos try
Contêm o código que forma uma parte da operação normal de seu programa, mas que poderia encontrar algumas condições de erro sérias.
Blocos catch
Contêm o código que trata das várias condições de erro.
Blocos finally
Contêm o código que libera qualquer recurso ou executa qualquer outra ação que você regularmente vai querer executar ao término do bloco
try
.
O blocofinally
será executado quer a aplicação tenha lançado uma exceção ou não e pode ser omitido.
Sintaxe
try { // Código para execução normal } catch { // Código para manipulação do erro } finally { // Liberação }
Exemplo
Recebemos uma variável string
informada pelo usuário e precisamos converter para um Int32
garantindo que se for encontrado erro esta retorne o valor zero.
public Int32 ConverteInt32(string Valor) { Int32 valor; try { valor = Convert.ToInt32(Valor); } catch { valor = 0; } return valor; }
Podemos também capturar a mensagem de erro assim como varias informações sobre nosso erro definindo uma variável local no momento do erro.
catch(Exception e) { meuErro = e.Message; }
Podemos tratar erros específicos com tipos de catch
diferentes para cada tipo de erro, e estes catch
podem ser aninhados em uma estrutura para melhor depuração do erro.
try { string s = null; ProcessString(s); } // Mais especificos: catch (ArgumentNullException e) { Console.WriteLine("{0} Primeira exceção.", e); } // Menos especifico: catch (Exception e) { Console.WriteLine("{0} Segunda exceção.", e); }