Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A finalidade de um bloco try-catch é capturar e manipular uma exceção gerada pelo código de trabalho. Algumas exceções podem ser manipuladas em um bloco catch e o problema pode ser resolvido sem que a exceção seja gerada novamente. No entanto, com mais frequência, a única coisa que você pode fazer é certificar-se de que a exceção apropriada seja gerada.
Exemplo
Neste exemplo, IndexOutOfRangeException não é a exceção mais apropriada: ArgumentOutOfRangeException faz mais sentido para o método porque o erro é causado pelo argumento index passado pelo chamador.
static int GetInt(int[] array, int index)
{
try
{
return array[index];
}
catch (IndexOutOfRangeException e) // CS0168
{
Console.WriteLine(e.Message);
// Set IndexOutOfRangeException to the new exception's InnerException.
throw new ArgumentOutOfRangeException("index parameter is out of range.", e);
}
}
Comentários
O código que causa uma exceção fica dentro do bloco try. Uma instrução catch é adicionada imediatamente após para lidar com IndexOutOfRangeException, caso ocorra. O bloco catch manipula o IndexOutOfRangeException e gera o ArgumentOutOfRangeException mais apropriado. Para fornecer ao chamador tantas informações quanto possível, considere especificar a exceção original como o InnerException da nova exceção. Uma vez que a propriedade InnerException é somente leitura, você precisa atribuí-la no construtor da nova exceção.