Como: Manipular uma exceção usando try/catch (translation from VPE for Csharp Programming guia)

A finalidade de um try-catch bloco é capturar e manipular uma exceção gerada pelo código de trabalho.Algumas exceções podem ser tratadas em um catch bloco e o problema solucionado sem a exceção relançada; no entanto, com mais freqüência a única coisa que você pode fazer é certificar-se de que a exceção adequada é lançada.

Exemplo

Neste exemplo, IndexOutOfRangeException não é a exceção mais apropriada: ArgumentOutOfRangeException faz mais sentido para o método porque o erro é causado pela index argumento passado pelo chamador.

class TestTryCatch
{
    static int GetInt(int[] array, int index)
    {
        try
        {
            return array[index];
        }
        catch (System.IndexOutOfRangeException e)  // CS0168
        {
            System.Console.WriteLine(e.Message);
            //set IndexOutOfRangeException to the new exception's InnerException
            throw new System.ArgumentOutOfRangeException("index parameter is out of range.", e);
        }
    }
}

Comentários

O código que causa uma exceção é colocado entre o try bloco. A catch demonstrativo é adicionada imediatamente após manipular IndexOutOfRangeException, caso ele ocorra. The catch alças de bloquear o IndexOutOfRangeException lança o mais apropriada e ArgumentOutOfRangeException exceção em vez disso. Para fornecer o máximo possível de informações do chamador, considere especificando a exceção original sistema autônomo a InnerException nova exceção. Porque o InnerException propriedade é somente leitura, você deve atribuí-lo no construtor da nova exceção.

Consulte também

Conceitos

Guia de Programação C#

Referência

Exceções e manipulação de exceção (guia de programação C#)

Tratamento exceção (guia de programação translation from VPE for Csharp)