Есть вот такая функция для обращения к API:
async api(method, params = {}) {
// ...
if (data.response) {
return data.response;
}
else {
throw new Error(data.error);
}
}
Предполагается, что сообщения об ошибках должны выводиться в модальном окне. Нужно понять, как наиболее правильно это реализовать. Пока что есть вот такие варианты:
1. Добавить вызов функции
modal() прямо прямо перед инструкцией
throw;
2. Ловить ошибки с помощью конструкции
try ... catch;
async init() {
// ...
try {
let response = await api('users.list');
}
catch (e) {
modal(e.text);
}
}
3. Ловить ошибки с помощью
catch (хотя это не очень соответствует стилю
async/await).
async function init() {
// ...
let response = await api('users.list').catch(e => modal(e.text));
}
Какой вариант в данной ситуации лучше использовать? Хочется писать как можно меньше кода (способ обработки ошибок не будет зависеть от их характера) и иметь возможность выйти из функции
init() после обработки ошибки.
Буду благодарен за ответы.