Встречается на собеседованиях • сегодня
Получится ли отловить ошибку внутри setTimeout через try-catch-finally
Нет, стандартный try-catch не отловит ошибку внутри setTimeout, так как колбэк выполняется асинхронно, в другом цикле событий. Для обработки ошибок в асинхронном коде нужно:
- Использовать
try-catchвнутри самого колбэка:
js
setTimeout(() => {
try {
throw new Error('Ошибка!');
} catch (err) {
console.error('Поймали:', err);
}
}, 1000);- Либо использовать Promise с
.catch():
js
new Promise((resolve, reject) => {
setTimeout(() => {
try {
throw new Error('Ошибка!');
resolve();
} catch (err) {
reject(err);
}
}, 1000);
}).catch(err => console.error('Поймали:', err));Также можно глобально отлавливать такие ошибки через window.onerror или process.on('uncaughtException') в Node.js.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы