Оператор try...catch...finally предоставляет структурированную обработку ошибок в JavaScript:
try — оборачивает код, который может выбросить ошибкуcatch — выполняется только если возникла ошибка, получая объект ошибки как параметрfinally — всегда выполняется независимо от того, была ошибка или нет; обычно используется для освобождения ресурсовtry → ошибка выброшена? → ДА → catch → finally
→ НЕТ → finally
catch полностью пропускаетсяfinally выполняется всегда — даже если catch повторно выбросит ошибку или встретится оператор returntry {
const data = JSON.parse(invalidJson);
} catch (error) {
console.error("Parsing failed:", error.message);
} finally {
console.log("This always runs — ideal for cleanup");
}
catch получает объект ошибки с полезными свойствами: message и namefinally обычно используется для освобождения ресурсов — закрыть файл, скрыть спиннер загрузки или очистить таймерtry/finally без catch вполне допустима, когда нужна очистка, но ошибку ты хочешь пробросить выше по стекуtry {
riskyOperation();
} finally {
cleanup(); // выполняется даже если riskyOperation выбросит ошибку
}
Этот паттерн полезен, когда обработка ошибки — ответственность вызывающего кода, но очистка всё равно должна быть гарантирована локально.
Блок finally выполнится даже если в блоке try или catch встречается оператор return.
Новый — ещё не проверен сообществом
Вы