try
{
await _storage.UploadAsync(blob);
}
catch (IOException)
{
throw;
}Deterministischer Fensterabgleich: beanstandet ein `catch`, dessen Rumpf, über die nächsten fünf Zeilen gelesen, genau `throw;` ist.
`catch (...) { throw; }`: ein Handler, dessen einzige Anweisung die Exception weiterwirft. Er ändert nichts und fügt nur einen try-Block hinzu, den man lesen muss.
Jedes Beispiel zeigt genau die Codeform, nach der die Regel sucht, und dann die kleinste Version, die die Absicht bewahrt, ohne Risiken zu verstecken oder Rauschen hinzuzufügen.
try
{
await _storage.UploadAsync(blob);
}
catch (IOException)
{
throw;
}Deterministischer Fensterabgleich: beanstandet ein `catch`, dessen Rumpf, über die nächsten fünf Zeilen gelesen, genau `throw;` ist.
try
{
await _storage.UploadAsync(blob);
}
catch (IOException ex)
{
throw new UploadFailedException($"Upload of {blob.Name} failed", ex);
}Lösch das try/catch. Nutze `finally` zum Aufräumen oder `throw new SomeException("context", ex)`, wenn du Kontext ergänzen musst.
Agenten packen Aufrufe reflexhaft in try/catch, merken dann, dass sie mit dem Fehler nichts anfangen können, und werfen ihn weiter. Das Gerüst bleibt stehen.
ai-slop/csharp-empty-catch-rethrow
ai-slop
Deterministischer Fensterabgleich: beanstandet ein `catch`, dessen Rumpf, über die nächsten fünf Zeilen gelesen, genau `throw;` ist.
Catches, die vor dem Weiterwerfen loggen, aufräumen oder die Exception einpacken (`throw new X(..., ex)`), werden nicht beanstandet.
Teil des C#-Regelsatzes von aislop. Vollwertige C#-Unterstützung, einschließlich C#-spezifischer AI-Slop-Regeln, kam mit aislop v0.14.1.