RTCError
RTCError
接口描述了在处理 WebRTC 操作时发生的错误。它基于标准的 DOMException
接口,该接口描述了通用的 DOM 错误。
构造函数
RTCError()
-
创建一个新的
RTCError
对象并返回,该对象使用不同的参数初始化,还可以选择使用字符串作为错误的message
属性的值。
实例属性
除了父接口 DOMException
定义的属性之外,RTCError
还包括以下属性:
errorDetail
只读-
一个字符串,指定 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; // event.error is an RTCError
if (error.errorDetail === "sdp-syntax-error") {
let errLine = error.sdpLineNumber;
let errMessage = error.message;
let alertMessage = `A syntax error occurred interpreting line ${errLine} of the SDP: ${errMessage}`;
showMyAlertMessage("Data Channel Error", alertMessage);
} else {
terminateMyConnection();
}
});
如果错误是 SDP 语法错误(由其 errorDetail
属性为 sdp-syntax-error
指示),则会构造一个消息字符串来呈现错误消息以及 SDP 中发生错误的行号。然后,此消息将使用名为 showMyAlertMessage()
的函数显示,该函数代表此代码可能使用的任何输出机制。
任何其他错误都将被视为终止错误,导致调用 terminateMyConnection()
函数。
上面的示例使用 addEventListener()
为 error
事件添加处理程序。您还可以使用 RTCDataChannel
对象的 onerror
事件处理程序属性,如下所示:
dataChannel.onerror = (event) => {
let error = event.error;
/* and so forth */
};
规范
规范 |
---|
WebRTC:浏览器中的实时通信 # dom-rtcerror |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。