Выбор ответа Junior Ошибки, defer, panic и recover обновлено

Когда уместен panic

Вопрос

В каком случае panic в Go уместен?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Нарушен инвариант (баг) или провалилась инициализация на старте. Ожидаемые ошибки (неверный ввод, сеть, отсутствующий файл) это значения error, их возвращают и обрабатывают. panic оставляют для багов: выход за границы, невозможная ветка, а также для Must-функций при старте (regexp.MustCompile с…

Варианты ответа

  1. Пользователь ввёл неверный email в форме регистрации
  2. Запрос к базе вернул ошибку таймаута, ответ не получить
  3. Нарушен инвариант (баг) или провалилась инициализация на стартеправильный ответ
  4. Файл конфигурации не найден при обработке рабочего запроса

Разбор

Ожидаемые ошибки (неверный ввод, сеть, отсутствующий файл) это значения error, их возвращают и обрабатывают. panic оставляют для багов: выход за границы, невозможная ветка, а также для Must-функций при старте (regexp.MustCompile с литералом), когда продолжать бессмысленно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме