No C#, uma exceção capturada em um bloco try-catch pode ser...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a E - throw.
No C#, quando estamos trabalhando com exceções, utilizamos um mecanismo conhecido como bloco try-catch para tratar erros que podem ocorrer durante a execução do programa. Quando uma exceção é capturada pelo bloco catch, podemos decidir o que fazer com ela. Uma das opções é relançá-la, o que significa que a exceção será passada adiante na pilha de chamadas, dando a oportunidade para que outro bloco try-catch em um nível mais alto trate essa exceção, ou, caso não seja capturada novamente, será tratada pelo mecanismo padrão de exceções do runtime, que geralmente termina o programa e imprime a pilha de chamadas.
Para relançar uma exceção capturada em C#, usamos a instrução throw sem especificar a exceção, o que efetivamente relança a exceção atual que está sendo tratada. Veja um exemplo:
try {
// Código que pode gerar exceção
} catch (Exception ex) {
// Tratamento da exceção
throw; // Relança a mesma exceção
}
É importante destacar que usar apenas throw preserva a pilha de chamadas original da exceção, o que é crucial para a depuração, enquanto usar new Exception() criaria uma nova exceção, perdendo o contexto original.
As outras alternativas não são instruções válidas em C# para relançar exceções. new Exception() cria uma nova exceção, forward e raise não são palavras-chave do C#, e Exception() parece uma tentativa de instanciar uma exceção, mas está incorreta pois falta a palavra-chave new.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
e-
A throw statement can be used in a catch block to re-throw the exception that is caught by the catch statement.
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/try-catch
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo