Немає сенсу голий улов і кидок, як ви показуєте. Він не робить нічого корисного, крім додавання коду та повільного виконання. Отже, якщо ви збираєтеся .catch()
і переробити, то має бути щось, що ви хочете зробити в .catch()
, інакше ви просто повинні .catch()
повністю видалити .
Звичайний момент для цієї загальної структури - це коли ви хочете виконати щось у .catch()
такій формі, як реєстрація помилок або очищення стану (наприклад, закриття файлів), але ви хочете, щоб ланцюжок обіцянок продовжувався як відхилений.
promise.then(function(result){
}).catch(function(error) {
console.log(error);
throw error;
});
У підручнику це може бути просто для того, щоб показати людям, де вони можуть вловити помилки, або навчити концепції обробки помилки, а потім її відкинути.
Нижче наведено кілька корисних причин лову та відкидання:
- Ви хочете зареєструвати помилку , але зберігайте ланцюжок обіцянок як відхилений.
- Ви хочете перетворити помилку на якусь іншу помилку (часто для полегшення обробки помилок у кінці ланцюжка). У такому випадку ви б повторили іншу помилку.
- Ви хочете виконати купу обробок до того, як ланцюжок обіцянок продовжиться (наприклад, закриті / вільні ресурси), але ви хочете, щоб ланцюжок обіцянок залишався відхиленим.
- Ви хочете, щоб на цьому етапі ланцюжка обіцянок було встановлено точку зупинки для налагоджувача, якщо виникла помилка.
Але звичайний вилов та повторне вилучення тієї самої помилки без жодного іншого коду в обробнику catch не робить нічого корисного для нормального запуску коду.