В Go обработка ошибок обычно строится на возвращении значения ошибки из функции и её проверке. Основные методы:
Какие методы обработки ошибок тебе известны?
В Go обработка ошибок обычно строится на возвращении значения ошибки из функции и её проверке. Основные методы:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В 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 не принято использовать исключения, как в других языках, а ошибки обрабатываются явно.