RTCError - 描述了在处理 WebRTC 操作时发生的错误
RTCError
接口描述了在处理 WebRTC 操作时发生的错误。它基于描述通用 DOM 错误的标准 DOMException
接口。
构造函数
RTCError()
创建并返回一个新的 RTCError
对象,该对象使用提供的 RTCErrorInit
字典的属性进行初始化,并可选地使用一个字符串作为错误的 message
属性的值。
属性
除了父接口 DOMException
定义的属性之外,RTCError 还包括以下属性:
errorDetail
只读
一个 DOMString
,指定特定于 WebRTC 的错误代码,用于标识发生的错误类型。
receivedAlert
只读
一个无符号的长整数值,指示从网络接收到的致命 DTLS 错误。仅当 errorDetail
字符串为 dtls-failure
时有效。如果为 null
,则不会收到 DTLS 错误。
sctpCauseCode
只读
如果 errorDetail
是 sctp-failure
,则此属性是一个长整数,指定 SCTP 原因代码,指示 SCTP 协商失败的原因。如果错误不是 SCTP 错误,则为 null
。
sdpLineNumber
只读
如果 errorDetail
是 sdp-syntax-error
,则此属性是一个长整数,用于标识发生语法错误的 SDP 的行号。如果错误不是 SDP 语法错误,则为 null
。
sentAlert
只读
如果 errorDetail
是 dtls-failure
,则此属性是一个无符号的长整数,指示此设备发送的致命 DTLS 错误。如果为 null
,则表示没有发生 DTLS 错误。
所有
RTCError
对象的name
为OperationError
。
实例
在此实例中,为 RTCDataChannel
的 error
事件设置了处理程序。
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 的定义 |
候选推荐 | 初始定义。 |
桌面浏览器兼容性
暂无兼容数据