Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Cloud Functions
  • Сопоставление с другими сервисами Yandex Cloud
    • Обзор
    • Управление зависимостями
    • Обработчик запросов
    • Контекст вызова
    • Журналирование
    • Обработка ошибок
    • Использование SDK
  • Инструменты
  • Правила тарификации
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы
  1. Разработка на Go
  2. Обработка ошибок

Обработка ошибок функции на Go

Статья создана
Yandex Cloud
Обновлена 21 апреля 2025 г.

Если обработчик сигнализирует об ошибке исполнения или загрузки функции на Go, среда выполнения автоматически перехватывает ошибку и возвращает в ответ JSON-документ, содержащий информацию о типе ошибки. Формат этого JSON-документа описан в разделе Вызов функции.

Также информация об ошибке записывается в журнал выполнения, который можно просмотреть с помощью Yandex Cloud CLI или консоли управления.

Примеры обработки ошибкиПримеры обработки ошибки

Ситуация 1: пользовательский код выходит за пределы массива, ожидается panic. В реальности обработчик перехватывает panic автоматически, собирает информацию о нём воедино и формирует из неё JSON-документ, содержащий сообщение об ошибке (поле errorMessage), тип ошибки (поле errorType) и трассировку стека (поле stackTrace).

Код функции:

package main

func Handler () (int, error) {
  array := []int{1, 2, 3, 4, 5}
  return array[15], nil
}

Возвращаемый JSON-документ:

{
  "errorMessage": "user code execution causes panic: runtime error: index out of range [15] with length 5",
  "errorType": "UserCodePanic",
  "stackTrace": [
    ...
  ]
}

Ситуация 2: пользовательский код сигнализирует об ошибке путем возвращения её из функции. В этом случае обработчик перехватывает данную ошибку и формирует из неё JSON-документ, содержащий сообщение пользовательской ошибки (поле errorMessage) и её тип (поле errorType).

Код функции:

package main

import "fmt"

func Handler () (int, error) {
  return 0, fmt.Errorf("an error")
}

Возвращаемый JSON-документ:

{
  "errorMessage": "an error",
  "errorType": "UserCodeError"
}

Была ли статья полезна?

Предыдущая
Журналирование
Следующая
Использование SDK
Проект Яндекса
© 2025 ООО «Яндекс.Облако»