Что важно знать
- Ошибка — значение, проверяется явно.
fmt.Errorf("загрузка заказа %d: %w", id, err).errors.Is— сравнение с эталоном,errors.As— извлечение типа.panicиrecover— не для обычных ошибок.
Ошибки как значения, оборачивание, errors.Is и errors.As, panic и recover.
fmt.Errorf("загрузка заказа %d: %w", id, err).errors.Is — сравнение с эталоном, errors.As — извлечение типа.panic и recover — не для обычных ошибок.Практика. Добавить обработку ошибок с контекстом во все слои учебного сервиса.
Практика. Ввести типизированные ошибки домена и переводить их в коды HTTP в одном месте.
Ошибка — обычное значение типа error, которое функция возвращает последним: if err != nil { return ... }. Оборачивают с контекстом через fmt.Errorf("...: %w", err). Проверяют…
panic — для невозможных ситуаций и ошибок программиста (выход за границы, nil-указатель, нарушенный инвариант), а не для ожидаемых ошибок. Panic раскручивает стек, выполняя defer…
На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.