Обработка нескольких ошибок
Есть try...catch, в catch проверяются несколько условий if...else if... для обработки ошибок. Но не пойму как сделать так, чтобы все ошибки обработались, т.е. чтобы отработали все блоки, а не только первый:
try {
await action
}
catch (error) {
const errors: ActionsExceptionInterface = {}
if (error.code === "10") {
errors.value1 = 'Произошла ошибки 10'
} else if (error.code === "20") {
errors.value2 = 'Произошла ошибка 20'
} else if (error.code !== "10" && error.code !== "20") {
errors.unknownError = 'Произошла ошибка, но я не знаю какая'
}
throw new CustomException(errors)
}
Проблема в том, что если в catch должно упасть две ошибки, например 10 и 20 из примера выше, отрабатывает та, которая упала быстрее. Т.е. я хочу сделать так, чтобы в объект errors упали строки текстового описания ошибок, а затем выбросился ексепшн с итоговым объектом после всех проверок, но не до конца понимаю как это сделать, мб на промисах как-то или есть какой-то способ заставить нынешний код отработать. Подскажите как такое сделать, спасибо.