aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/javascript/reference/global_objects/syntaxerror/index.html
blob: 73badf1974ffabf1e543c7a6c376101365968ce2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
---
title: SyntaxError
slug: Web/JavaScript/Reference/Global_Objects/SyntaxError
tags:
  - Class
  - JavaScript
  - Object
  - Reference
  - SyntaxError
translation_of: Web/JavaScript/Reference/Global_Objects/SyntaxError
browser-compat: javascript.builtins.SyntaxError
---

<div>{{JSRef}}</div>

<p>
  <code><strong>SyntaxError</strong></code
  > 객체는 문법적으로 유효하지 않은 코드를 해석하려고 시도할 때 발생하는 오류를
  의미합니다. Javascript 엔진이 코드를 구문 분석할 때 언어의 구문에 맞지 않는
  토큰이나 토큰 순서를 만나면 이 오류를 던집니다.
</p>

<h2 id="생성자">생성자</h2>

<dl>
  <dt>{{jsxref("Global_Objects/SyntaxError/SyntaxError", "SyntaxError()")}}</dt>
  <dd>새로운 <code>SyntaxError</code> 객체를 만듭니다.</dd>
</dl>

<h2 id="인스턴스_속성">인스턴스 속성</h2>

<dl>
  <dt>
    {{jsxref("Error.prototype.message", "SyntaxError.prototype.message")}}
  </dt>
  <dd>
    오류 메시지. 비록 ECMA-262에서 {{jsxref("SyntaxError")}}는 반드시 자체
    <code>message</code> 속성을 제공해야한다고 명시했지만,
    <a href="/en-US/docs/Mozilla/Projects/SpiderMonkey">SpiderMonkey</a>{{jsxref("Error.prototype.message")}}를 상속합니다.
  </dd>
  <dt>{{jsxref("Error.prototype.name", "SyntaxError.prototype.name")}}</dt>
  <dd>오류 이름. {{jsxref("Error")}}로부터 상속되었습니다.</dd>
  <dt>
    {{jsxref("Error.prototype.fileName", "SyntaxError.prototype.fileName")}}
  </dt>
  <dd>이 오류가 발생한 파일 경로. {{jsxref("Error")}}로부터 상속되었습니다.</dd>
  <dt>
    {{jsxref("Error.prototype.lineNumber", "SyntaxError.prototype.lineNumber")}}
  </dt>
  <dd>
    이 오류가 발생한 파일의 줄 수. {{jsxref("Error")}}로부터 상속되었습니다.
  </dd>
  <dt>
    {{jsxref("Error.prototype.columnNumber","SyntaxError.prototype.columnNumber")}}
  </dt>
  <dd>
    이 오류가 발생한 줄(행)에서의 열 위치. {{jsxref("Error")}}로부터 상속되었습니다.
  </dd>
  <dt>{{jsxref("Error.prototype.stack", "SyntaxError.prototype.stack")}}</dt>
  <dd>스택 트레이스. {{jsxref("Error")}}로부터 상속되었습니다.</dd>
</dl>

<h2 id="예제">예제</h2>

<h3 id="SyntaxError_잡기"><code>SyntaxError</code> 잡기</h3>

<pre class="brush: js">
try {
  eval('hoo bar');
} catch (e) {
  console.error(e instanceof SyntaxError);
  console.error(e.message);
  console.error(e.name);
  console.error(e.fileName);
  console.error(e.lineNumber);
  console.error(e.columnNumber);
  console.error(e.stack);
}
</pre>

<h3 id="SyntaxError_생성하기"><code>SyntaxError</code> 생성하기</h3>

<pre class="brush: js">
try {
  throw new SyntaxError('Hello', 'someFile.js', 10);
} catch (e) {
  console.error(e instanceof SyntaxError); // true
  console.error(e.message);                // Hello
  console.error(e.name);                   // SyntaxError
  console.error(e.fileName);               // someFile.js
  console.error(e.lineNumber);             // 10
  console.error(e.columnNumber);           // 0
  console.error(e.stack);                  // @debugger eval code:3:9
}
</pre>

<h2 id="명세" name="명세">명세</h2>

{{Specifications}}

<h2 id="브라우저_호환성">브라우저 호환성</h2>

<p>{{Compat}}</p>

<h2 id="같이_보기">같이 보기</h2>

<ul>
  <li>{{jsxref("Error")}}</li>
</ul>