Your catch blocks are lying to you.

Empty catches, swallowed exceptions, missing error boundaries, unhandled promise rejections — they're silently destroying your app. ErrorLens finds every one of them.

$ clawhub install errorlens click to copy
$ errorlens scan
🔍 ErrorLens v1.0.0
 
Scanning 87 files across 6 languages...
 
  src/api/users.ts:34
    ✗ [EC-001] Empty catch block — exception silently swallowed
    → Log the error or re-throw with context
 
  src/hooks/useAuth.tsx:19
    ✗ [EB-003] React component missing ErrorBoundary wrapper
    → Wrap with <ErrorBoundary> to prevent full-page crash
 
  src/services/payment.py:52
    ✗ [SE-012] Exception caught but only partially logged
    → Preserve full stack trace — don't discard exception info
 
  src/workers/queue.js:88
    ⚠ [RP-007] Promise chain missing .catch() handler
    → Add .catch() or use try/await to handle rejection
 
  ───────────────────────────────────────
  Score: 31/100 (Grade: F)  |  6 critical  4 high  2 medium

Every empty catch block is a ticking time bomb.

Your app isn't crashing — it's failing silently. Swallowed exceptions hide bugs for weeks. Missing error boundaries take down entire pages. Generic catch-all handlers turn recoverable errors into data corruption. ErrorLens scans your codebase across JS/TS, Python, Java, Go, Rust, and C# to surface every dangerous pattern before production does it for you.

90+
Detection patterns
6
Pattern categories
6
Languages supported
100%
Local — zero telemetry

What ErrorLens Catches

EC
🚫

Empty Catch Blocks

Detects catch blocks with no logic — no logging, no re-throw, no handling at all. The most common source of invisible failures in every codebase.

SE
🤐

Swallowed Exceptions

Catches exceptions that are caught and partially handled but lose critical context: stripped stack traces, discarded causes, or logged then ignored.

EB
🛡️

Missing Error Boundaries

Finds React components without ErrorBoundary wrappers, Express routes without error middleware, and API handlers with no top-level protection.

GE
🎯

Generic Error Types

Flags overly broad catches like catch(Exception e) or bare except: that mask specific failure modes and make debugging impossible.

RP
💥

Rejected Promises

Surfaces promise chains missing .catch(), async functions without try/catch, and event handlers that silently drop rejections.

IL
🔄

Incomplete Lifecycle

Detects missing finally blocks for resource cleanup, unclosed connections in error paths, and try blocks without proper teardown logic.

Without ErrorLens vs. With ErrorLens

✗ Without ErrorLens
Empty catch blocks hide failures for weeks
Swallowed exceptions corrupt data silently
One component crash takes down the entire page
Unhandled rejections crash Node processes at 3 AM
Generic catches mask the real failure mode
Missing finally blocks leak DB connections
Hours of debugging — "it works on my machine"
✓ With ErrorLens
Every empty catch flagged before commit
Stack traces preserved with full context
Error boundaries enforced at every route
Every promise chain has a rejection handler
Specific exception types catch specific failures
Resource cleanup guaranteed in finally blocks
Error safety score tracked per commit

Simple, transparent pricing

Start scanning for free. Upgrade when your error handling demands it.

Free
$0
  • Basic error pattern scan
  • Terminal report output
  • Pre-commit hook support
  • 3 pattern categories
  • Community support
Install Free
Team
$39/mo
  • Everything in Pro
  • Team-wide error safety report
  • Baseline & threshold config
  • SARIF output for CI
  • Custom rule definitions
  • Policy enforcement
  • Priority support

Get notified about updates

No spam. One email per week max. Unsubscribe anytime.

Every silent failure started with a lazy catch block

Install ErrorLens in 30 seconds. Find every dangerous error handling pattern before your users find it for you.

$ clawhub install errorlens click to copy