Sobes.tech
Назад к вопросам
Junior — Middle
89

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

Компании, где спрашивали
AvitoAvito

Ответ от нейросети

sobes.tech AI

В Go обработка ошибок обычно осуществляется через возвращаемое значение ошибки (error). Функции возвращают два значения: результат и ошибку. Если ошибка не nil, её нужно обработать. Такой подход позволяет явно контролировать ошибки.

Пример:

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, fmt.Errorf("деление на ноль")
    }
    return a / b, nil
}

result, err := divide(10, 0)
if err != nil {
    fmt.Println("Ошибка:", err)
} else {
    fmt.Println("Результат:", result)
}

Также в Go есть паники (panic) и восстановление (recover), но их используют для критических ошибок, а не для обычной обработки ошибок.

Иногда применяют кастомные типы ошибок для более детальной информации.