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

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

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

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

sobes.tech AI

В Go обработка ошибок обычно строится на возвращении значения ошибки из функции и её проверке. Основные методы:

  1. Возврат ошибки как значения — функция возвращает 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))
}
  1. Паника и восстановление (panic/recover) — для критических ошибок, которые не должны происходить в норме. panic вызывает остановку программы, recover позволяет обработать панику.

  2. Пакет errors и обёртки ошибок — для создания и обогащения ошибок дополнительной информацией.

  3. Использование пользовательских типов ошибок — для более точной обработки разных типов ошибок.

В Go не принято использовать исключения, как в других языках, а ошибки обрабатываются явно.