Compartilhar via


Como manipular uma exceção usando try/catch (Guia de Programação em C#)

A finalidade de um try-catch bloco é capturar e manipular uma exceção gerada pelo código de trabalho. Algumas exceções podem ser manipuladas em uma catch block e o problema resolvido sem a exceção sendo re-thrown; No entanto, muitas vezes a única coisa que você pode fazer é certificar-se de que a exceção apropriada é 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 faz com que uma exceção seja colocado entre a try bloco. A catch imediatamente após, a declaração é adicionada ao lidar com IndexOutOfRangeException, caso ele ocorra. O catch identificadores de bloquear o IndexOutOfRangeException e lança o mais apropriado ArgumentOutOfRangeException exceção em vez disso. Para fornecer o chamador com o máximo de informações possível, considere a especificação a exceção original como o InnerException da nova exceção. Porque o InnerException propriedade é somente leitura, você deve atribuir a ele no construtor da nova exceção.

Consulte também

Referência

Exceções e manipulação de exceções (Guia de Programação em C#)

Manipulação de exceções (Guia de Programação em C#)

Conceitos

Guia de Programação em C#