Урок 4.1Урок 16 з 24
Обробка помилок
Given a scenario, handle errors properly.
Головне
- 1finally виконується завжди — після try або catch, навіть якщо вони повертають значення. return усередині finally замінює все, що повернули або викинули try чи catch.
- 2Викидайте об'єкти Error, а не рядки: лише Error має name, message і stack. Для власних типів розширюйте Error і задавайте name.
- 3Перехоплюйте лише те, що можете обробити. Перевіряйте тип через instanceof, а все інше викидайте повторно, щоб справжні баги не ховалися.
- 4try/catch бачить асинхронну помилку лише через await. Проміс, який повернули або запустили без await, відхиляється пізніше, уже поза блоком try.
- 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 запитань