Я использую следующую функцию, которая работает нормально, однако у меня есть проблема с обработкой ошибок
, например,
Я хочу поймать общую c ошибку для все функции
Если fn1
или fn2
возвращает какую-либо ошибку, функция должна выдать 'generi c ошибка произошла`
Вот что мне нужно
, если getData2
не имеет указанного c значения свойства (см. if), вернуть uniq error uniq error occurred
и not общая ошибка ...
Это рабочий пример
https://jsfiddle.net/8duz7n23/
async function func1() {
try {
const data = await getData1()
console.log(data)
const data2 = await getData2();
if (!data2.url === !"https://test2.com") {
throw new Error("uniq error occurred ")
}
return data2.url
} catch (e) {
throw new Error("generic error occurred ")
}
}
async function getData1() {
return "something"
}
async function getData2() {
return {
url: "http://test.com"
}
}
func1().then(result => {
console.log(result);
}).catch(error => {
console.log(error);
});
Теперь, если я выброшу ошибку uniq , catch выдаст общую ошибку.
Я хочу это на случай func2
будет некоторая ошибка, он все равно выбрасывает общую ошибку, но если у вас есть правильный URL-адрес, полностью переместите uniq error
...
Есть ли более чистый способ для сделать это в nodejs?
Я не хочу использовать оператор if для сообщений в catch et c ...
Я хочу, чтобы бросил к функции верхнего уровня , а не к ловушке