🟢 Лёгкий · 1 очк. Обработка ошибок
Как правильно обработать ошибку в Go?
A try/catch
B if err != nil
C throw/catch
D rescue
Объяснение вопроса

В Go ошибки - это значения, возвращаемые из функций. Идиоматичный способ: проверить ошибку и при необходимости вернуть её выше или обработать.

Паттерн проверки

result, err := doSomething()
if err != nil {
    return err
}
// использовать result

Явная проверка вместо исключений - сознательное решение: код виден в месте вызова, нет скрытого потока управления.

Обработка с контекстом

f, err := os.Open(name)
if err != nil {
    return fmt.Errorf("open %s: %w", name, err)
}
defer f.Close()

%w оборачивает ошибку, сохраняя цепочку для errors.Is и errors.As. В Go нет try/catch.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.