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.

DOMException

RTCErrorConstructor
-----------

`RTCError()`

Creates and returns a new `RTCError` object initialized with the different parameters and, optionally, a string to use as the value of the error's `message` property.

Instance properties
-------------------

*In addition to the properties defined by the parent interface, `DOMException`, `RTCError` includes the following properties:*

`errorDetail` Read only 

A string specifying the WebRTC-specific error code identifying the type of error that occurred.

`receivedAlert` Read only 

An unsigned long integer value indicating the fatal DTLS error which was received from the network. Only valid if the `errorDetail` string is `dtls-failure`. If `null`, no DTLS error was received.

`sctpCauseCode` Read only 

If `errorDetail` is `sctp-failure`, this property is a long integer specifying the SCTP cause code indicating the cause of the failed SCTP negotiation. `null` if the error isn't an SCTP error.

`sdpLineNumber` Read only 

If `errorDetail` is `sdp-syntax-error`, this property is a long integer identifying the line number of the SDP on which the syntax error occurred. `null` if the error isn't an SDP syntax error.

`sentAlert` Read only 

If `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 `RTCError` objects have their `name` set to `OperationError`.

Examples
--------

 In this example, a handler is established for an `RTCDataChannel`'s
 `error` event.


```js
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:


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

  /\* and so forth \*/
};
```

Specifications
--------------

| Specification |
| --- |
| WebRTC: Real-Time Communication in Browsers # dom-rtcerror |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.