Автор оригинала: FreeCodeCamp Community Member.
Попробуйте ... поймать .. Финально Заявление Определяет блок кода, чтобы попробовать, а также ответ должен возникнуть ошибка. попробуйте Заявление содержит один или несколько попробуйте блоки и заканчиваются хотя бы одним поймать и/или Наконец пункт.
попробуй поймать:
try {
throw new Error('my error');
} catch (err) {
console.error(err.message);
}
// Output: my errorпопробуй … наконец:
try {
throw new Error('my error');
} finally {
console.error('finally');
}
// Output: finallyКогда вы не используете поймать Заявление, ошибка не «поймана», даже если код в Наконец блок выполнен. Вместо этого ошибка будет продолжаться до верхнего попробуйте Блок (или основной блок).
попробуй … поймать … наконец:
try {
throw new Error('my error');
} catch (err) {
console.error(err.message);
} finally {
console.error('finally');
}
// Output:
// my error
// finallyТипичное использование:
try {
openFile(file);
readFile(file)
} catch (err) {
console.error(err.message);
} finally {
closeFile(file);
}Вложенная попытка … поймать:
Вы также можете:
- Гнездо
попробоватьЗаявление внутрипопробуйтеблокировать.
Вы можете гнездить попробуй ... поймать Заявление в пределах попробуйте блокировать. Например, чтобы бросить ошибку вверх:
try {
try {
throw new Error('my error');
} catch (err) {
console.error('inner', err.message);
throw err;
} finally {
console.log('inner finally');
}
} catch (err) {
console.error('outer', err.message);
}
// Output:
// inner my error
// inner finally
// outer my errorОригинал: “https://www.freecodecamp.org/news/error-handling-and-try-catch-throw/”