# 06. Generator .throw()

Вызов `generator.throw(x)` выполняет `throw x` на месте текущего приостановленного `yield`. На строке с `yield` возникает исключение, которое может быть перехвачено. Если ошибку не перехватить, то она «выпадет» из генератора.

```javascript
function* gen() {
  // В этой строке возникнет ошибка
  let result = yield "Сколько будет 2 + 2?";
}

let generator = gen();
let question = generator.next().value;

try {
  generator.throw(new Error("ответ не найден в моей базе данных"));
} catch (e) {
  alert(e); // выведет ошибку
}
```

Throwing an exception in a newborn generator (that hasn’t started yet) is allowed:

```javascript
function* genFunc() {}
genFunc().throw(new Error("Problem!"));
// Error: Problem!
```
