CCA Prep

Урок 4.1Урок 16 з 24

Обробка помилок

Given a scenario, handle errors properly.

Обробка помилокДе виникає помилка?Синхронний кодtry/catchповторно викидайтете, що не можетеобробитиУсерединіасинхронної функціїtry/catchнавколо awaitreturn awaitусередині tryЛанцюжок промісів.catch у кінціохоплює всі крокиперед нимКолбек, щовиконується пізнішеОбробитивсерединіколбеказовнішній try ужезавершився

Головне

  1. 1finally виконується завжди — після try або catch, навіть якщо вони повертають значення. return усередині finally замінює все, що повернули або викинули try чи catch.
  2. 2Викидайте об'єкти Error, а не рядки: лише Error має name, message і stack. Для власних типів розширюйте Error і задавайте name.
  3. 3Перехоплюйте лише те, що можете обробити. Перевіряйте тип через instanceof, а все інше викидайте повторно, щоб справжні баги не ховалися.
  4. 4try/catch бачить асинхронну помилку лише через await. Проміс, який повернули або запустили без await, відхиляється пізніше, уже поза блоком try.
  5. 5then(onOk, onFail) не перехоплює помилок, викинутих в onOk. Натомість ставте catch у кінці ланцюжка.
Що перевіряє іспит із цієї теми

Формулювання з програми іспиту (англійською).

  • 4.1.K1try/catch/finally, throw, Error types and custom errors
  • 4.1.K2Errors in asynchronous code: rejected promises, catch, try/catch around await
  • 4.1.S1Choose the error handling that catches the failure and keeps the program correct

Закріпіть тему

Дайте відповідь на запитання за сценаріями з цієї теми. До кожного варіанта є розбір.

Тренування 4.1 · 12 запитань