Generator.prototype.throw()

Метод throw() відновлює виконання генератора викиданням у ньому помилки та повертає об'єкт з двома властивостями, done та value.

Синтаксис

gen.throw(exception)

Параметри

exception
Виняток, який треба викинути. З метою налагоджування корисно робити його instanceof Error.

Значення, що повертається

Об'єкт з двома властивостями:

  • done (булеве значення)
    • Має значення true, якщо ітератор досяг кінця послідовності перебору. В цьому випадку value за бажанням визначає повернене значення ітератора.
    • Має значення false, якщо ітератор зміг видати наступне значення послідовності. Це аналогічно тому, щоб взагалі не вказувати значення властивості done.
  • будь-яке значення JavaScript, повернене ітератором. Може бути пропущене, коли done дорівнює true.

Приклади

Використання throw()

Наступний приклад демонструє простий генератор та помилку, що викидається методом throw. Помилку, як завжди, можна перехопити блоком try...catch.

function* gen() {
  while(true) {
    try {
       yield 42;
    } catch(e) {
      console.log('Перехоплено помилку!');
    }
  }
}

var g = gen();
g.next();
// { value: 42, done: false }
g.throw(new Error('Щось пішло не за планом'));
// "Перехоплено помилку!"
// { value: 42, done: false }

Специфікації

Сумісність з веб-переглядачами

BCD tables only load in the browser

Див. також