Skip to content
Back to skills

Error Handling

ASecurity

Use when patterns for robust error handling across TypeScript, Python, and Go. Covers typed errors, error boundaries, retries, circuit breakers, and user-facing error messages. Triggers on \"error-handling\", \"error handling\", \"handling\".

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
developmenttypescriptpythongoreactfastapidebuggingapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 19, 2026

npx -y skills add majinmagros/magros.ai-skills --skill error-handling --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Error Handling?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Error Handling
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majinmagros-error-handling/badge)](https://www.skillsdirectory.com/skills/majinmagros-error-handling)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: error-handling
description: "Use when patterns for robust error handling across TypeScript, Python, and Go. Covers typed errors, error boundaries, retries, circuit breakers, and user-facing error messages. Triggers on \"error-handling\", \"error handling\", \"handling\"."
metadata:
  origin: ECC
---

# Error Handling Patterns

Consistent, robust error handling: typed errors, fail fast, user messages ≠ dev messages, never swallow silently. Detalhes em `references/`.

## When to Activate

- Designing error types or exception hierarchies for a new module or service
- Adding retry logic or circuit breakers for unreliable external dependencies
- Reviewing API endpoints for missing error handling
- Implementing user-facing error messages and feedback
- Debugging cascading failures or silent error swallowing

## Core Principles

1. **Fail fast and loudly** — surface errors where they occur; don't bury them
2. **Typed errors over strings** — errors are first-class values with structure
3. **User messages ≠ developer messages** — friendly text to users, full context in logs
4. **Never swallow silently** — every `catch` handles, re-throws, or logs
5. **Errors are API contract** — document every error code clients may receive

## Example

```typescript
export class AppError extends Error {
  constructor(
    message: string,
    public readonly code: string,
    public readonly statusCode: number = 500,
  ) {
    super(message)
    Object.setPrototypeOf(this, new.target.prototype)
  }
}

// API envelope: { error: { code, message } } — never leak internals (500 → generic)
```

## References

- `references/typescript.md` — typed errors, Result pattern, API handler, ErrorBoundary
- `references/python-go.md` — exception hierarchy, FastAPI handlers, sentinel errors + wrapping
- `references/resilience.md` — exponential backoff with jitter, user-message map

## Checklist

- [ ] Every `catch` handles, re-throws, or logs
- [ ] API envelope `{ error: { code, message } }`, no stack traces to users
- [ ] Custom errors extend base `AppError` with `code`
- [ ] Retries only on retriable errors (never 4xx)
- [ ] React rendering wrapped in `ErrorBoundary`

Files in this skill

  • SKILL.md2.1 KB
  • references/python-go.md2.8 KB
  • references/resilience.md1.8 KB
  • references/typescript.md4.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…