ОбязательноGo

Обработка ошибок

Сохраняйте причину ошибки внутри системы и возвращайте безопасное объяснение наружу.

Проверено Изменено

Плохо

func persist(order Order) (*Order, error) {
    result, _ := saveOrder(order)
    return result, nil
}

Хорошо

func persist(order Order) (*Order, error) {
    result, err := saveOrder(order)
    if err != nil {
        return nil, fmt.Errorf("save order: %w", err)
    }
    return result, nil
}

Почему это важно

Игнорирование ошибки создаёт ложный успех.

Когда применять

Не используйте panic для ожидаемой ошибки запроса. Преобразование внутренних причин в HTTP выполняется на границе.

Кто что делает

Человек

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

AI-агент

Реализует правило в коде сервиса и проверяет ошибку, отмену и граничные входные данные.

Контроль результата:

  • Сбой хранилища не возвращает успешный ответ?

Как проверить у себя

  • Сбой хранилища не возвращает успешный ответ?
ПервоисточникиИстория изменений на GitHub

Дата проверки отражает содержательную сверку. Синхронизация сайта не обновляет её автоматически.