01. try-catch-finally
Исключения перехватываются с помощью обработчика try-catch-finally. Когда возбуждается исключение, интерпретатор JS немедленно прерывает нормальное выполнение программы и переходит к ближайшему обработчику исключений.
try {
...
} catch (err) {
...
} finally {
...
}⟧Работает try-catch-finally так:
Выполняется код внутри блока
try.Если в нём ошибок нет, то блок
catch(err)игнорируется, то есть выполнение доходит до концаtryи потом прыгает черезcatch.Если в нём возникнет ошибка, то выполнение
tryна ней прерывается, и управление прыгает в начало блокаcatch(err).При этом переменная
err(можно выбрать и другое название) будет содержать объект ошибки с подробной информацией о произошедшем.Если есть блок
finally, то он срабатывает вне зависимости от того, было выброшено исключение или нет.И блок
catch, и блокfinallyне являются обязательными, однако после блокаtryдолжен обязательно присутствовать хотя бы один из них.Если блок
finallyвозвращает значение, то данное значение становится возвращаемым значением всей связкиtry-catch-finally. Значения, возвращаемые блокамиtryиcatch, будут проигнорированы.
try..catch работает только в синхронном коде:
try {
setTimeout(() => throw new Error(), 1000); // throws in console
} catch (e) {
alert("do not work");
}Last updated
Was this helpful?