Skip to content

错误恢复

examples/ 下没有专门讲错误恢复的示例;你真正需要的恢复逻辑(网关重连、会话恢复、心跳)由 Client::start 内部自动处理。剩下的只是检查每次 BotApi 调用的 Result,决定记日志、忽略,还是重试。

框架已经做了什么

  • WebSocket 重连(按 session-start 间隔节流)
  • 临时断开后的会话恢复
  • 心跳保活
  • Token::validate() 校验 token

如果想观察框架抛出的分派错误,实现 EventHandler::error(&self, error: BotError);默认实现会记录日志。

单次调用

BotApi 方法返回 botrs::Result<T>。失败分支是 botrs::BotError,本身已经能区分瞬时错误(网络、限流)和永久错误(鉴权、报文非法)。需要时就 match,否则打个日志继续。

rust
match session.reply(&reply).await {
    Ok(_) => {},
    Err(e) => tracing::warn!("reply failed: {e}"),
}

参见

基于 MIT 许可证发布