Zum Hauptinhalt springen
ai-slop/redundant-try-catchmanuelle Behebung

Redundantes try/catch.

Ein try/catch, dessen catch nur denselben Fehler erneut wirft. Es fügt Verschachtelung hinzu und suggeriert eine Fehlerbehandlung, die es nicht gibt.

Beanstandete und saubere Form.

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.

redundant-try-catch.ts
✗ Beanstandet
export async function loadProfile(userId: string) {
  try {
    return await api.get(`/users/${userId}/profile`)
  } catch (error) {
    throw error
  }
}
Warum das anschlägt

Deterministischer AST-Abgleich für JS/TS: beanstandet try-Anweisungen ohne `finally`, deren catch-Body aus einem einzigen `throw err` oder `return Promise.reject(err)` der abgefangenen Variable besteht.

redundant-try-catch.ts
✓ Sauber
export async function loadProfile(userId: string) {
  return api.get(`/users/${userId}/profile`)
}
Was sich geändert hat

Entferne das try/catch und lass den Fehler durchlaufen, oder ergänze den Kontext, das Aufräumen oder die Wiederherstellung, die es rechtfertigen würden.

Agenten packen Aufrufe vorsorglich in try/catch, haben im catch dann nichts zu tun und werfen den Fehler unverändert weiter.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/redundant-try-catch

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer AST-Abgleich für JS/TS: beanstandet try-Anweisungen ohne `finally`, deren catch-Body aus einem einzigen `throw err` oder `return Promise.reject(err)` der abgefangenen Variable besteht.

Legitimer Code, der NICHT beanstandet wird

Catches, die Kontext hinzufügen (`throw new Error('...', { cause: err })`), loggen, aufräumen oder sich erholen, sowie jedes try mit `finally`-Block werden nicht beanstandet.

Belege

Teil von aislops Detektoren für defensive Muster in JavaScript und TypeScript, gewertet in der Maintainability-Stufe.