RTCError
The RTCError interface describes an error which has occurred while handling WebRTC operations. It's based upon the standard DOMException interface that describes general DOM errors.
Constructor
RTCError()-
Creates and returns a new
RTCErrorobject initialized with the different parameters and, optionally, a string to use as the value of the error'smessageproperty.
Properties
In addition to the properties defined by the parent interface, DOMException, RTCError includes the following properties:
-
errorDetailRead only -
A
DOMStringspecifying the WebRTC-specific error code identifying the type of error that occurred. -
receivedAlertRead only -
An unsigned long integer value indicating the fatal DTLS error which was received from the network. Only valid if the
errorDetailstring isdtls-failure. Ifnull, no DTLS error was received. -
sctpCauseCodeRead only -
If
errorDetailissctp-failure, this property is a long integer specifying the SCTP cause code indicating the cause of the failed SCTP negotiation.nullif the error isn't an SCTP error. -
sdpLineNumberRead only -
If
errorDetailissdp-syntax-error, this property is a long integer identifying the line number of the SDP on which the syntax error occurred.nullif the error isn't an SDP syntax error. -
sentAlertRead only -
If
errorDetailisdtls-failure, this property is an unsigned long integer indicating the fatal DTLS error that was sent out by this device. Ifnull, no DTLS error was transmitted.
Note: All RTCError objects have their name set to OperationError.
Examples
In this example, a handler is established for an RTCDataChannel's 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 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 addEventListener() to add the handler for error events. You can also use the RTCDataChannel object's onerror event handler property, like this:
dataChannel.onerror = (event) => { let error = event.error; /* and so forth */ };
Specifications
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
RTCError |
74 |
79 |
No |
No |
60 |
No |
74 |
74 |
No |
53 |
No |
11.0 |
RTCError |
74 |
79 |
No |
No |
60 |
No |
74 |
74 |
No |
53 |
No |
11.0 |
errorDetail |
74 |
79 |
No |
No |
60 |
No |
74 |
74 |
No |
53 |
No |
11.0 |
httpRequestStatusCode |
74 |
79 |
No |
No |
62 |
No |
74 |
74 |
No |
53 |
No |
11.0 |
receivedAlert |
74 |
79 |
No |
No |
60 |
No |
74 |
74 |
No |
53 |
No |
11.0 |
sctpCauseCode |
74 |
79 |
No |
No |
60 |
No |
74 |
74 |
No |
53 |
No |
11.0 |
sdpLineNumber |
74 |
79 |
No |
No |
60 |
No |
74 |
74 |
No |
53 |
No |
11.0 |
sentAlert |
74 |
79 |
No |
No |
60 |
No |
74 |
74 |
No |
53 |
No |
11.0 |
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCError