Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: panic, recover, error handling, defer

Как обрабатываются ошибки и паники в Go?

Проверяет навыки обработки ошибок.

Короткий ответ

В Go ошибки обрабатываются явно через error. Паники перехватываются с помощью defer + recover внутри функций.

Длинный ответ

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

Go использует явную обработку ошибок:

res, err := doSomething()
if err != nil {
    return err
}

Обработка паник:

Паника (panic) прерывает выполнение функции и «поднимается» вверх по стеку. Чтобы предотвратить крах всей программы, можно использовать recover:

func safe() {
    defer func() {
        if r := recover(); r != nil {
            log.Println("Recovered from panic:", r)
        }
    }()
    riskyFunction()
}

Когда использовать:

  • error: всегда, это стандарт для контроля потока.

  • panic/recover: для действительно неожиданных ситуаций (например, сбой сети, выход за пределы массива и т.д.).

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Golang

    Golang

Ключевые слова

#panic

#recover

#error handling

#defer

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.