How to: Handle an Exception Using try/catch (C# Programming Guide)
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 block e o problema resolvido sem 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: ArgumentOutOfRangeExceptionfaz 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 é 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 mais apropriado ArgumentOutOfRangeException exceção em vez disso. Para fornecer o chamador com tantas informações quanto possível, considere a especificação a exceção original como o InnerException da nova exceção. Porque o InnerException é a propriedade readonly, você deve atribuir a ele no construtor da nova exceção.
Consulte também
Referência
Exceptions and Exception Handling (C# Programming Guide)
(Guia de programação C#) de manipulação de exceção