RTCError - 描述了在处理 WebRTC 操作时发生的错误

RTCError 接口描述了在处理 WebRTC 操作时发生的错误。它基于描述通用 DOM 错误的标准 DOMException 接口。

构造函数

RTCError()

创建并返回一个新的 RTCError 对象,该对象使用提供的 RTCErrorInit 字典的属性进行初始化,并可选地使用一个字符串作为错误的 message 属性的值。

属性

除了父接口 DOMException 定义的属性之外,RTCError 还包括以下属性:

errorDetail 只读

一个 DOMString,指定特定于 WebRTC 的错误代码,用于标识发生的错误类型。

receivedAlert 只读

一个无符号的长整数值,指示从网络接收到的致命 DTLS 错误。仅当 errorDetail 字符串为 dtls-failure 时有效。如果为 null,则不会收到 DTLS 错误。

sctpCauseCode 只读

如果 errorDetailsctp-failure,则此属性是一个长整数,指定 SCTP 原因代码,指示 SCTP 协商失败的原因。如果错误不是 SCTP 错误,则为 null

sdpLineNumber 只读

如果 errorDetailsdp-syntax-error,则此属性是一个长整数,用于标识发生语法错误的 SDP 的行号。如果错误不是 SDP 语法错误,则为 null

sentAlert 只读

如果 errorDetaildtls-failure,则此属性是一个无符号的长整数,指示此设备发送的致命 DTLS 错误。如果为 null,则表示没有发生 DTLS 错误。

所有 RTCError 对象的 nameOperationError

实例

在此实例中,为 RTCDataChannelerror 事件设置了处理程序。

dataChannel.addEventListener("error", (event) => {
  let error = event.error;

  if (error.errorDetail === "sdp-syntax-error") {
    let errLine = error.sdpLineNumber;
    let errMessage = error.message;

    let alertMessage = `解释 SDP 的 ${errLine} 行时发生语法错误: ${errMessage}`;
    showMyAlertMessage("数据通道错误", alertMessage);
  } else {
    terminateMyConnection();
  }
});

如果错误是 SDP 语法错误(由其 errorDetail 属性表示为 sdp-syntax-error),则会构造一条消息字符串来显示错误消息,以及发生错误的 SDP 中的行号。然后使用一个名为 showMyAlertMessage() 的函数显示该消息。

任何其他错误都被视为终止,并将调用 terminateMyConnection() 函数。

上面的实例使用 addEventListener() 添加 error 事件的处理程序。您还可以使用 RTCDataChannel 对象的 onerror 事件处理程序属性,如下所示:

dataChannel.onerror = (event) => {
  let error = event.error;

  /* 依此类推 */
};

规范

规范 状态 备注
WebRTC 1.0: Real-time Communication Between Browsers
RTCError 的定义
候选推荐 初始定义。

桌面浏览器兼容性

暂无兼容数据