Обработка нескольких ошибок

Есть 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 упали строки текстового описания ошибок, а затем выбросился ексепшн с итоговым объектом после всех проверок, но не до конца понимаю как это сделать, мб на промисах как-то или есть какой-то способ заставить нынешний код отработать. Подскажите как такое сделать, спасибо.


Ответы (0 шт):