SMeetingError,继承 Error,额外带这些字段:
toString() 输出 "{code}: {detail}"。
错误码是怎么拼出来的
- SDK 内部错误:低 3 位语义码加平台前缀拼成 6 位数。
HarmonyOS 的会议前缀是
208,所以内部错误码形如208001、208011、208356。 - 业务后端透传的错误码:≥ 1000 时原样保留,文案语言随
SMeetingEngine.setLanguage返回中文或英文。 - HTTP 状态码不会拼进错误码(1.1.0 起):HTTP 非 200 一律为
208007,状态在httpStatus; 后端返回 < 1000 的异常码(如-1)也报208007。1.0.0 会出208404、208200、207999这类码。
注意会议与 RTC 用两套前缀:RTC 是
108、会议是 208
(各端都是这个规则,首位 1 表示 RTC、2 表示会议业务)。
所以看到 208xxx 就知道是会议层的错,108xxx 是底层 RTC 的错。调用会议接口时两种都可能收到 —— 会议层的操作最终会落到 RTC 层。错误清单
unauthorized(208004)是会控接口最常见的错误。所有 admin* 方法都要求
主持人或联席主持人身份 —— UI 上应该按 Role 提前隐藏 / 禁用按钮,
而不是等调用失败再提示。推荐的处理方式
入会失败还有一条独立通路
enterRoom() 抛错只覆盖”请求阶段就失败”。入会请求成功、但后续被服务端拒绝
(比如会议已锁定、被移入等候室)走的是事件:
try/catch 和 onRoomJoinFailed,只写一边会漏。
底层 RTC 错误
会议 SDK 内部用的是 SRTC,所以媒体相关的失败可能抛出SRTCError(108xxx)。
采集 / 权限错误原样透传、不由会议层重新包装,常见的有 cameraPermissionDenied(108231)、
micPermissionDenied(108251)、screenShareDenied(108039)、deviceNotFound(108021)、
captureError(108018),以及 codecNotSupported、transportNotReady。
1.1.0 起 smeeting 直接转出 SRTCError / SRTCErrorKind,只依赖 smeeting 的业务代码也能 instanceof SRTCError。
完整清单见 SRTC 错误码。