C# · Intermediário · Inglês · Técnico
rethrow
Relançar uma exceção capturada. Em C#, throw; sozinho preserva a stack trace original, enquanto throw ex; a reinicia a partir do ponto atual.
Onde usar
Aparece em code reviews de blocos catch que registram o erro e o propagam. Usar throw ex; apaga a origem do erro e dificulta o diagnóstico em produção.
Em código
try { Processar(); }
catch (Exception ex)
{
Log(ex);
throw; // preserva a stack trace
// throw ex; // evite: reinicia o rastro
}Exemplos
Use throw; to rethrow and keep the stack trace.
Use throw; para relançar e manter a stack trace.
throw ex resets the stack trace.
O throw ex reinicia a stack trace.
Cuidado
Não confunda throw; com throw ex;: só o primeiro mantém o rastro de onde o erro realmente começou.
Sinônimos
relançar