Generator.prototype.throw()

throw() 메소드는 Generator의 실행을 재개시키고 Generator 함수의 실행 문맥 속으로 error를 주입한다. donevalue 프로퍼티를 가진 객체를 반환한다.

Syntax

gen.throw(exception)

매개 변수

exception
Generator 함수의 실행 문맥 속으로 주입할 예외. 디버깅의 목적이라면 instanceof Error 인 것이 유용하다.

반환 값

두 개의 프로퍼티를 가진 객체

  • done (boolean)
    • Iterator(반복자)가 마지막 반복 작업을 마쳤을 경우 true. 만약 iterator(반복자)에 return 값이 있다면 value의 값으로 지정된다.
    • Iterator(반복자)의 작업이 남아있을 경우 false. Iterator(반복자)에 done 프로퍼티 자체를 특정짓지 않은 것과 동일하다.
  • value - Iterator(반복자)으로부터 반환되는 모든 자바스크립트 값이며 done이 true일 경우 생략될 수 있다.

예시

throw() 사용하기

다음의 예시는 간단한 Generator 함수와 throw 메소드를 통해서 주입된 에러를 보여준다. 에러는 try...catch블록을 통해서 핸들링 할 수 있다.

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

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Generator.prototype.throw' in that specification.
Standard Initial definition.
ECMAScript 2017 Draft (ECMA-262)
The definition of 'Generator.prototype.throw' in that specification.
Draft  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support ? 26 (26) ? ? ?
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? ? 26.0 (26) ? ? ?

See also

문서 태그 및 공헌자

 이 페이지의 공헌자: echo304
 최종 변경: echo304,