Warum eine Ausnahme in C# abfangen und erneut auslösen?
Hallo Kollegen! Ich bin neu in C# und sehe oft in fremdem Code das try-catch-Konstrukt, wo im catch-Block einfach dieselbe Ausnahme mit `throw;` erneut ausgelöst wird. Mir erscheint das sinnlos – warum einen Fehler abfangen, wenn man ihn nicht behandelt, sondern nur wieder auslöst? Warum nicht die Ausnahme einfach selbst hochsteigen lassen?
Zum Beispiel sehe ich oft diesen Code:
```csharp
public void DoSomething()
{
try
{
// irgendein gefährlicher Code
int result = 100 / 0;
}
catch (Exception ex)
{
// wir machen nichts, werfen einfach erneut
throw;
}
}
```
Meiner Meinung nach ist das dasselbe, als würde man den Code nicht in try-catch packen. Denn wenn man try-catch weglässt, fliegt die Ausnahme trotzdem nach außen. Aber wenn erfahrene Entwickler das so schreiben, muss es doch einen Sinn haben? Vielleicht übersehe ich etwas? Bitte erklärt mir, warum das nötig ist und welche Fallstricke es gibt.
Außerdem ist mir aufgefallen, dass manchmal `throw ex;` statt `throw;` geschrieben wird. Das ist