Назад к вопросам
Junior — Middle
85
Какие методы обработки ошибок тебе известны?
Компании, где спрашивали
Эрливидео
Ответ от нейросети
sobes.tech AI
В Go обработка ошибок обычно строится на возвращении значения ошибки из функции и её проверке. Основные методы:
- Возврат ошибки как значения — функция возвращает
errorкак последний возвращаемый параметр. Вызывающий код проверяетif err != nil.
func readFile(name string) ([]byte, error) {
data, err := os.ReadFile(name)
if err != nil {
return nil, err
}
return data, nil
}
func main() {
data, err := readFile("file.txt")
if err != nil {
log.Fatal(err)
}
fmt.Println(string(data))
}
-
Паника и восстановление (panic/recover) — для критических ошибок, которые не должны происходить в норме.
panicвызывает остановку программы,recoverпозволяет обработать панику. -
Пакет
errorsи обёртки ошибок — для создания и обогащения ошибок дополнительной информацией. -
Использование пользовательских типов ошибок — для более точной обработки разных типов ошибок.
В Go не принято использовать исключения, как в других языках, а ошибки обрабатываются явно.