Skip to main content
SDK 对外抛出的错误类型是 SMeetingError,一个带语义的 Swift 枚举,同时提供整数错误码。
  • switch 按语义分支处理
  • error.code 拿到整数错误码,方便日志与工单排查
  • error.message 拿到纯文本描述
  • error.localizedDescription 输出 "<code>: <message>"

错误清单


错误码规则

SMeetingError.code 返回的是拼接后的完整错误码:
  • 客户端错误(上表中客户端码小于 1000 的那些)会加上平台前缀,拼成 6 位数:iOS 前缀 203,macOS 前缀 205
  • 服务端透传错误apiError 且服务端码不小于 1000)原样保留,不加前缀
举例: 这样一眼就能区分「客户端自己拦下来的」和「服务端返回的」。

unauthorized 的常见来源

这是最容易遇到的一个错误,几乎都来自房间策略: 建议在 UI 上根据 RoomInfo 提前把按钮置灰,而不是让用户点了才收到报错。

推荐的处理方式

要点:
  • 除了 SMeetingError,底层音视频层也可能抛出自己的错误类型(例如采集失败、连接失败),所以 catch 兜底分支不要省
  • 面向最终用户提示时优先用 error.message;写日志时用 error.localizedDescription,它带错误码
  • SMeetingError 遵循 Equatable,可以直接和具体 case 比较

不会抛错的接口

以下接口设计成不抛错,可以放心直接调用,重复调用或状态不匹配时会被安全忽略:
  • logout()
  • exitRoom()
  • closeMic() / closeCamera() / stopShare()
  • disableIm()
  • toggleRemoteAudioMute(_:)
  • getRoomInfo() / getWhiteBoard() / getUsersInfo() / getUsersInfoList() / getRemoteVideoTrack(uid:desc:) / getDevices(kind:)

相关页面