SyntaxError

SyntaxError

SyntaxError 객체는 문법적으로 유효하지 않은 코드를 해석하려 할 때의 오류를 나타냅니다. JavaScript 엔진이 코드를 파싱할 때 언어의 문법과 맞지 않는 토큰이나 토큰 순서를 만나면 던져집니다.

출처: SyntaxError - JavaScript | MDN

본문

SyntaxError 객체는 문법적으로 유효하지 않은 코드를 해석하려 할 때의 오류를 나타냅니다. JavaScript 엔진이 코드를 파싱할 때 언어 문법에 부합하지 않는 토큰이나 토큰 순서를 만나면 던져집니다. SyntaxError는 직렬화 가능한 객체이므로 structuredClone()으로 복제하거나 postMessage()로 Worker 사이에서 복사할 수 있습니다. SyntaxErrorError의 하위 클래스입니다.

생성자

  • SyntaxError() — 새 SyntaxError 객체를 만듭니다.

인스턴스 속성

부모 Error의 인스턴스 속성도 상속합니다. SyntaxError.prototype에 정의되어 모든 인스턴스가 공유하는 속성: constructor, name(오류 타입의 이름, 초기 값은 "SyntaxError").

인스턴스 메서드

부모 Error의 인스턴스 메서드를 상속합니다.

예제

SyntaxError 잡기 — 아래 코드는 eval()로 유효하지 않은 문법을 해석할 때 SyntaxError가 던져지는 것을 보여줍니다.

try {
  eval("hoo bar");
} catch (e) {
  console.log(e instanceof SyntaxError); // true
  console.log(e.message);
  console.log(e.name); // "SyntaxError"
  console.log(e.stack); // Stack of the error
}

SyntaxError 만들기new SyntaxError("Hello")로 직접 만들어 던질 수 있습니다.

try {
  throw new SyntaxError("Hello");
} catch (e) {
  console.log(e instanceof SyntaxError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "SyntaxError"
  console.log(e.stack); // Stack of the error
}

더 알아보기

  • Error — 모든 오류 타입의 기본 클래스
  • eval() — 문자열을 코드로 평가하는 전역 함수
  • TypeError, RangeError, ReferenceError, URIError, EvalError — 기타 내장 오류 타입