RTCError

Das RTCError-Interface beschreibt einen Fehler, der bei der Verarbeitung von WebRTC-Operationen aufgetreten ist. Es basiert auf dem standardmäßigen DOMException-Interface, das allgemeine DOM-Fehler beschreibt.

DOMException RTCError

Konstruktor

RTCError()

Erstellt und gibt ein neues RTCError-Objekt zurück, das mit verschiedenen Parametern und optional einem String initialisiert wird, der als Wert der message-Eigenschaft des Fehlers verwendet wird.

Instanz-Eigenschaften

Neben den von der übergeordneten Schnittstelle DOMException definierten Eigenschaften enthält RTCError folgende Eigenschaften:

errorDetail Schreibgeschützt

Ein String, der den WebRTC-spezifischen Fehlercode angibt, der den Typ des aufgetretenen Fehlers identifiziert.

receivedAlert Schreibgeschützt

Ein unsignierter langer Integer-Wert, der den fatalen DTLS-Fehler angibt, der aus dem Netzwerk empfangen wurde. Nur gültig, wenn der errorDetail-String dtls-failure ist. Wenn null, wurde kein DTLS-Fehler empfangen.

sctpCauseCode Schreibgeschützt

Wenn errorDetail sctp-failure ist, handelt es sich bei dieser Eigenschaft um einen langen Integer, der den SCTP-Ursachencode angibt, der die Ursache für das Scheitern der SCTP-Verhandlung angibt. null, wenn der Fehler kein SCTP-Fehler ist.

sdpLineNumber Schreibgeschützt

Wenn errorDetail sdp-syntax-error ist, handelt es sich bei dieser Eigenschaft um einen langen Integer, der die Zeilennummer des SDP identifiziert, auf der der Syntaxfehler aufgetreten ist. null, wenn der Fehler kein SDP-Syntaxfehler ist.

sentAlert Schreibgeschützt

Wenn errorDetail dtls-failure ist, handelt es sich bei dieser Eigenschaft um einen unsignierten langen Integer, der den fatalen DTLS-Fehler angibt, der von diesem Gerät gesendet wurde. Wenn null, wurde kein DTLS-Fehler gesendet.

Hinweis: Alle RTCError-Objekte haben ihren name auf OperationError gesetzt.

Beispiele

In diesem Beispiel wird ein Handler für das RTCDataChannel error-Ereignis eingerichtet.

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();
  }
});

Wenn der Fehler ein SDP-Syntaxfehler ist – angezeigt durch die errorDetail-Eigenschaft als sdp-syntax-error – wird ein Nachrichten-String zusammengestellt, um die Fehlermeldung und die Zeilennummer innerhalb der SDP, an der der Fehler aufgetreten ist, darzustellen. Diese Nachricht wird dann mit einer Funktion namens showMyAlertMessage() angezeigt, die als Platzhalter für einen beliebigen Ausgabemechanismus dient, den dieser Code verwenden könnte.

Jeder andere Fehler wird als terminal behandelt, wodurch eine Funktion namens terminateMyConnection() aufgerufen wird.

Das obige Beispiel verwendet addEventListener(), um den Handler für error-Ereignisse hinzuzufügen. Sie können auch die onerror-Ereignishandler-Eigenschaft des RTCDataChannel-Objekts wie folgt verwenden:

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

  /* and so forth */
};

Spezifikationen

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

Browser-Kompatibilität

BCD tables only load in the browser