在线文档教程

generator.throw

generator.throw

The throw() method resumes the execution of a generator by throwing an error into it and returns an object with two properties done and value.

Syntax

gen.throw(exception)

Parameters

exceptionThe exception to throw. For debugging purposes, it is useful to make it an instanceofError.

Return value

An Object with two properties:

  • done (boolean)

Examples

Using throw()

The following example shows a simple generator and an error that is thrown using the throw method. An error can be caught by a try...catch block as usual.

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 }

Specifications

SpecificationStatusComment
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Generator.prototype.throw' in that specification.StandardInitial definition.
ECMAScript Latest Draft (ECMA-262)The definition of 'Generator.prototype.throw' in that specification.Draft

Browser compatibility

FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support(Yes)1326 (26)No support(Yes)10

FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support5.1(Yes)(Yes)26.0 (26)??10

See also

  • function*

Edit this page on MDN

© 2005–2017 Mozilla Developer Network and individual contributors.

Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator/throw