¿Por qué capturar y volver a lanzar una excepción en C#?
¡Hola, colegas! Soy nuevo en C# y a menudo veo en código ajeno la construcción try-catch donde dentro del bloque catch simplemente se vuelve a lanzar la misma excepción con `throw;`. Me parece sin sentido: ¿por qué capturar un error si no lo manejas, solo para lanzarlo de nuevo? ¿Por qué no dejar que la excepción se propague por sí sola?
Por ejemplo, a menudo encuentro código como este:
```csharp
public void DoSomething()
{
try
{
// algún código peligroso
int result = 100 / 0;
}
catch (Exception ex)
{
// no hacemos nada, solo relanzamos
throw;
}
}
```
En mi opinión, es lo mismo que simplemente no envolver el código en try-catch. Si quitamos try-catch, la excepción igualmente se lanzará hacia afuera. Pero si desarrolladores experimentados lo escriben así, ¿tendrá algún sentido? Tal vez me estoy perdiendo algo. Por favor, explíquenme para qué sirve esto y cuáles son los posibles inconvenientes.
También noté que a veces escriben `throw ex;` en lugar de `throw;`. Esto e