К основному содержанию
скилл Claude Code CX Codex Cursor

error-handling-patterns — скилл для Claude Code

Скилл помогает выбирать и внедрять паттерны обработки ошибок: исключения, Result-типы, повторные попытки и graceful degradation. Подойдёт для API и отладки сбоев.

Установить в Claude Code · Через маркетплейс плагинов Все способы и платформы ↓
/plugin marketplace add wshobson/agents
/plugin install developer-essentials@claude-code-workflows
Открыть на GitHub

Что делает error-handling-patterns

Скилл разбирает обработку исключений, Result-, Error Code- и Option/Maybe-типов. Он помогает разделять восстанавливаемые ошибки, например таймауты и неверный ввод, и неисправимые сбои вроде переполнения памяти или ошибок в коде. Отдельно рассматриваются передача контекста, понятные сообщения, логирование и очистка ресурсов.

Внутри есть базовые правила, пример обработки заказа на Python и ссылка на подробные паттерны в references/details.md. Также рассматриваются retry, circuit breaker, ошибки async/concurrent-кода и распределённых систем. Скилл доступен для Claude Code, Codex и Cursor.

Ставьте его, если агенту нужно проектировать границы ошибок или разбирать сбои в приложении. Для простой одноразовой проверки одного try-блока он избыточен.

Какие задачи решает

  • спроектировать обработку ошибок в новом модуле
  • разделить ожидаемые и неисправимые сбои
  • добавить контекст к ошибкам внешнего сервиса
  • проверить retry и circuit breaker
  • улучшить сообщения для пользователя и разработчика

Примеры запросов агенту

  • Спроектируй обработку ошибок для нового API: выбери между исключениями и Result-типами.
  • Проверь обработку ошибок в `process_order` и найди места, где сбои теряются.
  • Предложи схему retry и circuit breaker для сетевых ошибок.

Как установить error-handling-patterns

1Через маркетплейс плагинов

/plugin marketplace add wshobson/agents
/plugin install developer-essentials@claude-code-workflows

2Через Skills CLI (Vercel)

npx skills add wshobson/agents --skill error-handling-patterns -a claude-code

3Вручную: положить файлы

~/.claude/skills/error-handling-patterns/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/error-handling-patterns/

Похожие

mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. Claude Code Claude.ai 130 949установок java-springboot официальный github Задаёт практики разработки Spring Boot-приложений: от структуры проекта до тестов и безопасности. Пригодится, когда Copilot пишет или проверяет Java-код. GitHub Copilot 21 272установок typescript-advanced-types Seth Hobson Помогает агенту писать сложную типизацию TypeScript: generics, conditional types и преобразования типов. Нужен для библиотек, API-клиентов и строгих конфигураций. Claude Code CX Codex Cursor 92 169установок microsoft-code-reference официальный github Проверяет Microsoft API и SDK по официальной документации, ищет рабочие примеры и помогает разбирать ошибки в Azure и .NET-коде. GitHub Copilot 14 251установок typescript-mcp-server-generator официальный github Генерирует TypeScript-проект MCP-сервера с инструментами, ресурсами и конфигурацией. Пригодится, когда нужно быстро заложить сервер на MCP TypeScript SDK v2. GitHub Copilot 12 050установок dotnet-design-pattern-review официальный github Проверяет выбранный C#/.NET-код на применение паттернов проектирования и предлагает правки без изменения файлов. Подходит для ревью архитектуры проекта. GitHub Copilot 11 609установок

Вопросы о error-handling-patterns

Как установить error-handling-patterns в Claude Code?

Выполните npx skills add wshobson/agents --skill error-handling-patterns -a claude-code. Файл скилла появится в ~/.claude/skills/error-handling-patterns/SKILL.md.

Что делает error-handling-patterns?

Скилл помогает выбирать паттерны обработки ошибок и применять их в коде, API и асинхронных сценариях. Он также подсказывает, как сохранять контекст, логировать сбои и освобождать ресурсы.

Какие платформы поддерживает скилл?

Он доступен для Claude Code, Codex и Cursor. Для каждой платформы во входе есть отдельная команда установки.

Исходный текст

SKILL.md · MIT
---
name: error-handling-patterns
description: Master error handling patterns across languages including exceptions, Result types, error propagation, and graceful degradation to build resilient applications. Use when implementing error handling, designing APIs, or improving application reliability.
---

# Error Handling Patterns

Build resilient applications with robust error handling strategies that gracefully handle failures and provide excellent debugging experiences.

## When to Use This Skill

- Implementing error handling in new features
- Designing error-resilient APIs
- Debugging production issues
- Improving application reliability
- Creating better error messages for users and developers
- Implementing retry and circuit breaker patterns
- Handling async/concurrent errors
- Building fault-tolerant distributed systems

## Core Concepts

### 1. Error Handling Philosophies

**Exceptions vs Result Types:**

- **Exceptions**: Traditional try-catch, disrupts control flow
- **Result Types**: Explicit success/failure, functional approach
- **Error Codes**: C-style, requires discipline
- **Option/Maybe Types**: For nullable values

**When to Use Each:**

- Exceptions: Unexpected errors, exceptional conditions
- Result Types: Expected errors, validation failures
- Panics/Crashes: Unrecoverable errors, programming bugs

### 2. Error Categories

**Recoverable Errors:**

- Network timeouts
- Missing files
- Invalid user input
- API rate limits

**Unrecoverable Errors:**

- Out of memory
- Stack overflow
- Programming bugs (null pointer, etc.)

## Detailed patterns and worked examples

Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient.

## Best Practices

1. **Fail Fast**: Validate input early, fail quickly
2. **Preserve Context**: Include stack traces, metadata, timestamps
3. **Meaningful Messages**: Explain what happened and how to fix it
4. **Log Appropriately**: Error = log, expected failure = don't spam logs
5. **Handle at Right Level**: Catch where you can meaningfully handle
6. **Clean Up Resources**: Use try-finally, context managers, defer
7. **Don't Swallow Errors**: Log or re-throw, don't silently ignore
8. **Type-Safe Errors**: Use typed errors when possible

```python
# Good error handling example
def process_order(order_id: str) -> Order:
    """Process order with comprehensive error handling."""
    try:
        # Validate input
        if not order_id:
            raise ValidationError("Order ID is required")

        # Fetch order
        order = db.get_order(order_id)
        if not order:
            raise NotFoundError("Order", order_id)

        # Process payment
        try:
            payment_result = payment_service.charge(order.total)
        except PaymentServiceError as e:
            # Log and wrap external service error
            logger.error(f"Payment failed for order {order_id}: {e}")
            raise ExternalServiceError(
                f"Payment processing failed",
                service="payment_service",
                details={"order_id": order_id, "amount": order.total}
            ) from e

        # Update order
        order.status = "completed"
        order.payment_id = payment_result.id
        db.save(order)

        return order

    except ApplicationError:
        # Re-raise known application errors
        raise
    except Exception as e:
        # Log unexpected errors
        logger.exception(f"Unexpected error processing order {order_id}")
        raise ApplicationError(
            "Order processing failed",
            code="INTERNAL_ERROR"
        ) from e
```

## Common Pitfalls

- **Catching Too Broadly**: `except Exception` hides bugs
- **Empty Catch Blocks**: Silently swallowing errors
- **Logging and Re-throwing**: Creates duplicate log entries
- **Not Cleaning Up**: Forgetting to close files, connections
- **Poor Error Messages**: "Error occurred" is not helpful
- **Returning Error Codes**: Use exceptions or Result types
- **Ignoring Async Errors**: Unhandled promise rejections

© Seth Hobson · MIT · wshobson/agents

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой