Empty catch finder
A collection of custom Claude Code Skills to supercharge your development workflow.
npx -y skills add dcs-soni/skills --skill empty-catch-finderAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.8 KB, as published. Nobody here has run it
Empty Catch Block Finder
Detect silent error handlers that cause mysterious production failures.
Why This Matters
Empty catch blocks are silent killers:
try {
await saveOrder(order);
} catch (e) {
// Silent failure - order lost, no evidence
}
This skill finds them before they cause production incidents.
Quick Start
Empty Catch Analysis:
- [ ] Step 1: Scan for empty catch blocks
- [ ] Step 2: Assess risk level
- [ ] Step 3: Generate fix suggestions
Workflow
Step 1: Scan for Empty Catches
Find all empty/silent catch blocks:
python scripts/find_empty_catches.py <directory>
Detects:
catch (e) {}- completely emptycatch (e) { /* comment */ }- only commentsexcept: pass- Python silent passif err != nil { }- Go ignored errorscatch { return; }- silent returns
Step 2: Assess Risk Level
Each catch is categorized by risk:
| Risk | Pattern | Why Dangerous |
|---|---|---|
| π΄ Critical | Empty catch in async/database code | Data loss, corruption |
| π High | Empty catch in API handlers | Silent failures to users |
| π‘ Medium | Empty catch in utilities | Hidden bugs |
| π’ Low | Empty catch in tests/scripts | Usually intentional |
Step 3: Generate Fix Suggestions
Get suggested fixes:
python scripts/generate_fixes.py <directory> --output fixes.md
Fix patterns:
// β Before: Silent failure
catch (e) {}
// β
After: Logged + handled
catch (e) {
logger.error('Order save failed', { error: e, orderId: order.id });
throw new OrderSaveError('Failed to save order', { cause: e });
}
Utility Scripts
| Script | Purpose |
|---|---|
find_empty_catches.py | Find empty catch blocks |
generate_fixes.py | Suggest proper error handling |
Language Support
| Language | Patterns Detected |
|---|---|
| JavaScript/TypeScript | catch (e) {}, catch {} |
| Python | except: pass, except Exception: ... |
| Java | catch (Exception e) {} |
| Go | if err != nil { } (empty body) |
| C# | catch (Exception) {} |
See PATTERNS.md for full pattern reference.
Example
User: "Find silent error handlers in my codebase"
Output:
Found 8 empty catch blocks
π΄ CRITICAL (2)
src/services/payment.ts:45
catch (e) {} // In async payment processing!
src/db/users.ts:112
catch (e) { return null; } // Hides DB errors
π HIGH (3)
src/api/orders.ts:78
catch (error) { /* TODO: handle */ }
...
Integration with Linting
After fixing, prevent new empty catches:
ESLint:
{ "rules": { "no-empty": ["error", { "allowEmptyCatch": false }] } }
Python (Ruff):
[tool.ruff]
select = ["E722"] # bare-except
Related Skills
- incident-response-helper β Debug issues caused by silent failures
- stale-todo-finder β Find
// TODO: handle errorcomments