files/en-us/web/api/rtcerror/index.md
{{APIRef("WebRTC")}}
The RTCError interface describes an error which has occurred while handling WebRTC operations. It's based upon the standard {{domxref("DOMException")}} interface that describes general DOM errors.
{{InheritanceDiagram}}
RTCError object initialized with the different parameters and, optionally, a string to use as the value of the error's {{domxref("DOMException.message", "message")}} property.In addition to the properties defined by the parent interface, {{domxref("DOMException")}}, RTCError includes the following properties:
errorDetail string is dtls-failure. If null, no DTLS error was received.errorDetail is sctp-failure, this property is a long integer specifying the {{Glossary("SCTP")}} cause code indicating the cause of the failed SCTP negotiation. null if the error isn't an SCTP error.errorDetail is sdp-syntax-error, this property is a long integer identifying the line number of the {{Glossary("SDP")}} on which the syntax error occurred. null if the error isn't an SDP syntax error.errorDetail is dtls-failure, this property is an unsigned long integer indicating the fatal DTLS error that was sent out by this device. If null, no DTLS error was transmitted.[!NOTE] All
RTCErrorobjects have their {{domxref("DOMException.name", "name")}} set toOperationError.
In this example, a handler is established for an {{domxref("RTCDataChannel")}}'s {{domxref("RTCDataChannel.error_event", "error")}} event.
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();
}
});
If the error is an SDP syntax error—indicated by its {{domxref("RTCError.errorDetail", "errorDetail")}}
property being sdp-syntax-error—, a message string is
constructed to present the error message and the line number within the SDP at which the
error occurred. This message is then displayed using a function called
showMyAlertMessage(), which stands in for whatever output mechanism this
code might use.
Any other error is treated as terminal, causing a terminateMyConnection()
function to be called.
The above example uses {{domxref("EventTarget.addEventListener", "addEventListener()")}}
to add the handler for error events. You can also use the RTCDataChannel object's
{{domxref("RTCDataChannel.error_event", "onerror")}} event handler property, like this:
dataChannel.onerror = (event) => {
let error = event.error;
/* and so forth */
};
{{Specifications}}
{{Compat}}