Выбор ответа Junior Проверка сгенерированного кода обновлено

Пустой catch

Вопрос

В коде от ассистента: try { await sync() } catch (e) {}. В чём главная проблема?

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

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

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

Коротко

Правильный ответ: Ошибка тихо проглатывается, сбой синхронизации не виден. Пустой catch прячет сбой: синхронизация не прошла, а никто об этом не узнает, нет ни лога, ни ретрая, ни ответа с ошибкой.

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

  1. Блок catch должен всегда стоять перед блоком try
  2. await нельзя использовать внутри блока try в JavaScript
  3. Пустой catch замедляет код из-за лишнего перехвата
  4. Ошибка тихо проглатывается, сбой синхронизации не виденправильный ответ

Разбор

Пустой catch прячет сбой: синхронизация не прошла, а никто об этом не узнает, нет ни лога, ни ретрая, ни ответа с ошибкой. Нужно залогировать, вернуть понятную ошибку или пробросить дальше. Порядок try/catch в примере верный, await внутри try нормален, а производительность тут ни при чём.

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

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