Die throw() Methode übergibt dem Generator eine Exception, welche im Generator zu einem Fehler führt. Zudem wird ein Objekt mit den zwei Eigenschaften done und value zurückgegeben.

Syntax

gen.throw(exception)

Parameter

exception
Die Exception, die geworfen werden soll. Für Debuggingzwecke ist es sinnvoll eine Instanz von Error zu verwenden.

Rückgabewert

Ein Objekt mit zwei Eigenschaften:

  • done (boolean)
    • Hat den Wert true, wenn der Iterator am Ende der Sequenz angekommen ist. In diesem Fall ist value, der Rückgabewert des Iterators, optional spezifiziert.
    • Hat den Wert false, wenn der Iterator einen weiteren Wert aus der Sequenz produzieren kann. Das ist gleichbedeutend damit, dass die done Eigenschaft nicht spezifiziert ist.
  • value - Ein JavaScript Wert, der von einem Iterator zurückgegeben wird. Kann weggelassen werden, wenn done true ist.

Beispiele

Einsatz von throw()

Das folgende Beispiel zeigt einen einfachen Generator und einen Fehler der mit der throw Methode erzeugt wird. Ein Fehler kann mit try...catch abgefangen werden.

function* gen() {
  while(true) {
    try {
       yield 42;
    } catch(e) {
      console.log('Error caught!');
    }
  }
}

var g = gen();
g.next();
// { value: 42, done: false }
g.throw(new Error('Something went wrong'));
// "Error caught!"
// { value: 42, done: false }

Spezifikationen

Spezifikation Status Kommentar
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'Generator.prototype.throw' in dieser Spezifikation.
Standard Initiale Definition.
ECMAScript Latest Draft (ECMA-262)
Die Definition von 'Generator.prototype.throw' in dieser Spezifikation.
Entwurf  

Browserkompatibilität

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Grundlegende Unterstützung391326 Nein Ja10
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Grundlegende Unterstützung Ja Ja1326 Ja10 ?

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

 Mitwirkende an dieser Seite: schlagi123
 Zuletzt aktualisiert von: schlagi123,