Не получается обработать ошибку
ilovevkapi opened this issue · 4 comments
При обработке ошибки в методе messages.removeChatUser , ничего не происходит.
Часть кода (Node.Js):
try {
vk.api.messages.removeChatUser({
chat_id : reqbody["object"]["message"]["peer_id"] - 2000000000,
member_id : reqbody["object"]["message"]["reply_message"]["from_id"]
});
} catch(e) {
vk.api.messages.send({
random_id : Date.now(),
peer_id : reqbody["object"]["message"]["peer_id"],
message : "Ошибка"
});
}
Здесь, в основном могут возникнуть две ошибки - Такого участника нет в беседе, или же Отказано в доступе. Если ошибки не возникает, код работает без проблем. Но при ошибке, часть кода внутри "catch (e)" не выполняется.
В документации библиотеки "Vk-Io" я не смог найти, как ловить ошибки API. Пожалуйста, помогите это сделать.
Это ошибка промисов, вам надо сделать vk.api.call(...).catch(e=>{})
Это ошибка промисов, вам надо сделать
vk.api.call(...).catch(e=>{})
Спасибо большое, теперь код работает, но как определить, какая именно ошибка произошла?
Например .catch(e=>{ if(e.code == 15) message.send("Access denied")
Все коды ошибок смотрите в документации вк
Вы всегда должны обрабатывать ошибки, достаточно будет пробрасывать их вверх.
try {
await vk.api.messages.removeChatUser({
chat_id : reqbody.object.message.peer_id - 2000000000,
member_id : reqbody.object.message.reply_message.from_id
});
} catch(e) {
// Коды ошибок в сообщение
const error_messages = {
15: "Отказано в доступе",
935: "Такого участника нет в беседе"
};
await vk.api.messages.send({
random_id : Date.now(),
peer_id : reqbody.object.message.peer_id,
// from APIError
message : error_messages[e.code]
});
}