Назад к вопросам
Middle+
1
Какие есть способы обработать ошибку в Promise? Можно ли использовать конструкцию try/catch?
Компании, где спрашивали
VK Tech
Ответ от нейросети
sobes.tech AI
В JavaScript для обработки ошибок в Promise есть несколько способов:
- Метод
.catch()— самый распространённый способ обработки ошибок:
fetch('url')
.then(response => response.json())
.catch(error => {
console.error('Ошибка:', error);
});
- Второй аргумент в
.then(onFulfilled, onRejected)— можно передать функцию обработки ошибки:
promise.then(
result => { /* обработка результата */ },
error => { /* обработка ошибки */ }
);
- Использование
async/awaitс конструкциейtry/catch:
async function fetchData() {
try {
const response = await fetch('url');
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Ошибка:', error);
}
}
Важно: конструкцию try/catch нельзя использовать напрямую вокруг вызова promise.then(), чтобы поймать ошибки внутри промиса. try/catch работает с await или синхронным кодом. Если использовать try/catch без await, ошибки в промисах не будут пойманы.
Итого:
- Для обработки ошибок в промисах можно использовать
.catch()или второй аргумент.then(). - Для
async/awaitиспользуйтеtry/catch. - Нельзя использовать
try/catchдля обработки ошибок в промисах безawait.