Назад к вопросам
2gis
Senior
4
Расскажите про обработку ошибок в Go. Что такое типичная ошибка? Чем отличается обработка ошибок в Go от других языков?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go обработка ошибок основана на возвращении значения ошибки (error) из функций, а не на исключениях, как в большинстве других языков.
Типичная ошибка в Go — это значение типа error, которое реализует интерфейс:
type error interface {
Error() string
}
Функция, которая может завершиться с ошибкой, обычно возвращает два значения: результат и ошибку:
func ReadFile(name string) ([]byte, error) {
// ...
}
Обработка ошибок происходит явно:
data, err := ReadFile("file.txt")
if err != nil {
// обработка ошибки
log.Fatal(err)
}
// использование data
Отличия от других языков:
- Нет исключений (try/catch). Ошибки обрабатываются явно и локально.
- Это повышает читаемость и предсказуемость кода, так как видно, где именно может возникнуть ошибка.
- Отсутствие скрытых путей выполнения.
Такой подход способствует более надёжному и понятному управлению ошибками, но требует дисциплины и внимательности при проверке ошибок после каждого вызова.