Avatar ·

Por que capturar e relançar uma exceção em C#?

Olá, colegas! Sou novo em C# e frequentemente vejo em código alheio a construção try-catch, onde dentro do bloco catch simplesmente relançam a mesma exceção usando `throw;`. Isso me parece sem sentido — por que capturar um erro se você não o trata, apenas o lança novamente? Por que não deixar a exceção propagar sozinha? Por exemplo, frequentemente encontro código assim: ```csharp public void DoSomething() { try { // algum código perigoso int result = 100 / 0; } catch (Exception ex) { // não fazemos nada, apenas relançamos throw; } } ``` Na minha opinião, isso é o mesmo que simplesmente não envolver o código em try-catch. Afinal, se removermos o try-catch, a exceção ainda assim será lançada para fora. Mas se desenvolvedores experientes escrevem assim, deve haver algum sentido nisso? Talvez eu esteja perdendo algo? Expliquem, por favor, para que isso serve e quais são as armadilhas. Também notei que às vezes escrevem `throw ex;` em vez de `throw;`. Isso é