Выбор ответа Junior Ошибки, defer, panic и recover обновлено
Когда уместен panic
Вопрос
В каком случае panic в Go уместен?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Нарушен инвариант (баг) или провалилась инициализация на старте. Ожидаемые ошибки (неверный ввод, сеть, отсутствующий файл) это значения error, их возвращают и обрабатывают. panic оставляют для багов: выход за границы, невозможная ветка, а также для Must-функций при старте (regexp.MustCompile с…
Варианты ответа
- Пользователь ввёл неверный email в форме регистрации
- Запрос к базе вернул ошибку таймаута, ответ не получить
- Нарушен инвариант (баг) или провалилась инициализация на стартеправильный ответ
- Файл конфигурации не найден при обработке рабочего запроса
Разбор
Ожидаемые ошибки (неверный ввод, сеть, отсутствующий файл) это значения error, их возвращают и обрабатывают. panic оставляют для багов: выход за границы, невозможная ветка, а также для Must-функций при старте (regexp.MustCompile с литералом), когда продолжать бессмысленно.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Что происходит при return с defer
Следующий вопрос
Как работают panic, defer и recover