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