如何捕捉未处理的拒绝?

时间:2020-04-03 14:26:16

标签: javascript node.js

我用TelegrafJS写了一个Telegram机器人,这个框架包装了Telegram API。实际上,当我调用此方法时,我面临的问题是如何正确管理unhandled rejection

await ctx.deleteMessage(message_id);

其中ctx是我得到的TelegrafJS的实例:

错误:错误:400:错误的请求:找不到删除消息

发生此错误是因为我通过的message_id不再存在于Telegram聊天中。现在,问题是我有几个控制器可能导致该问题。

我正在查看Promise.prototype.catch(),我的问题是:我可以为我的应用程序设置全局rejection handler,还是应该对可能受到异常影响的方法使用try/catch块?

1 个答案:

答案 0 :(得分:0)

是的,这很简单:

process.on('unhandledRejection', (err) => {
    //handle it!
});

您也可以使用基本上相同的代码来捕获未处理的异常:

process.on('uncaughtException', (err) => {
    //handle it!
});