From 42e3346531c06a57eb6f53d14e78c1267153c458 Mon Sep 17 00:00:00 2001 From: alattalatta Date: Mon, 13 Dec 2021 01:28:45 +0900 Subject: Rename Error docs to md --- .../global_objects/error/columnnumber/index.html | 38 --- .../global_objects/error/columnnumber/index.md | 38 +++ .../global_objects/error/error/index.html | 81 ------ .../reference/global_objects/error/error/index.md | 81 ++++++ .../global_objects/error/filename/index.html | 42 --- .../global_objects/error/filename/index.md | 42 +++ .../reference/global_objects/error/index.html | 298 --------------------- .../reference/global_objects/error/index.md | 298 +++++++++++++++++++++ .../global_objects/error/linenumber/index.html | 50 ---- .../global_objects/error/linenumber/index.md | 50 ++++ .../global_objects/error/message/index.html | 42 --- .../global_objects/error/message/index.md | 42 +++ .../reference/global_objects/error/name/index.html | 45 ---- .../reference/global_objects/error/name/index.md | 45 ++++ .../global_objects/error/tostring/index.html | 90 ------- .../global_objects/error/tostring/index.md | 90 +++++++ 16 files changed, 686 insertions(+), 686 deletions(-) delete mode 100644 files/ko/web/javascript/reference/global_objects/error/columnnumber/index.html create mode 100644 files/ko/web/javascript/reference/global_objects/error/columnnumber/index.md delete mode 100644 files/ko/web/javascript/reference/global_objects/error/error/index.html create mode 100644 files/ko/web/javascript/reference/global_objects/error/error/index.md delete mode 100644 files/ko/web/javascript/reference/global_objects/error/filename/index.html create mode 100644 files/ko/web/javascript/reference/global_objects/error/filename/index.md delete mode 100644 files/ko/web/javascript/reference/global_objects/error/index.html create mode 100644 files/ko/web/javascript/reference/global_objects/error/index.md delete mode 100644 files/ko/web/javascript/reference/global_objects/error/linenumber/index.html create mode 100644 files/ko/web/javascript/reference/global_objects/error/linenumber/index.md delete mode 100644 files/ko/web/javascript/reference/global_objects/error/message/index.html create mode 100644 files/ko/web/javascript/reference/global_objects/error/message/index.md delete mode 100644 files/ko/web/javascript/reference/global_objects/error/name/index.html create mode 100644 files/ko/web/javascript/reference/global_objects/error/name/index.md delete mode 100644 files/ko/web/javascript/reference/global_objects/error/tostring/index.html create mode 100644 files/ko/web/javascript/reference/global_objects/error/tostring/index.md (limited to 'files/ko/web') diff --git a/files/ko/web/javascript/reference/global_objects/error/columnnumber/index.html b/files/ko/web/javascript/reference/global_objects/error/columnnumber/index.html deleted file mode 100644 index fdd2883705..0000000000 --- a/files/ko/web/javascript/reference/global_objects/error/columnnumber/index.html +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Error.prototype.columnNumber -slug: Web/JavaScript/Reference/Global_Objects/Error/columnNumber -tags: - - JavaScript - - Non-standard - - Property - - Prototype -browser-compat: javascript.builtins.Error.columnNumber ---- -
{{JSRef}} {{non-standard_header}}
- -

columnNumber 속성은 이 오류가 발생한 파일의 행의 열 번호를 포함합니다.

- -

예제

- -

columnNumber 사용하기

- -
var e = new Error('Could not parse input');
-throw e;
-console.log(e.columnNumber) // 0
-
- -

명세

- -

표준의 일부가 아닙니다.

- -

브라우저 호환성

- -

{{Compat}}

- -

See also

- - diff --git a/files/ko/web/javascript/reference/global_objects/error/columnnumber/index.md b/files/ko/web/javascript/reference/global_objects/error/columnnumber/index.md new file mode 100644 index 0000000000..fdd2883705 --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/error/columnnumber/index.md @@ -0,0 +1,38 @@ +--- +title: Error.prototype.columnNumber +slug: Web/JavaScript/Reference/Global_Objects/Error/columnNumber +tags: + - JavaScript + - Non-standard + - Property + - Prototype +browser-compat: javascript.builtins.Error.columnNumber +--- +
{{JSRef}} {{non-standard_header}}
+ +

columnNumber 속성은 이 오류가 발생한 파일의 행의 열 번호를 포함합니다.

+ +

예제

+ +

columnNumber 사용하기

+ +
var e = new Error('Could not parse input');
+throw e;
+console.log(e.columnNumber) // 0
+
+ +

명세

+ +

표준의 일부가 아닙니다.

+ +

브라우저 호환성

+ +

{{Compat}}

+ +

See also

+ + diff --git a/files/ko/web/javascript/reference/global_objects/error/error/index.html b/files/ko/web/javascript/reference/global_objects/error/error/index.html deleted file mode 100644 index 11b495c777..0000000000 --- a/files/ko/web/javascript/reference/global_objects/error/error/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Error() 생성자 -slug: Web/JavaScript/Reference/Global_Objects/Error/Error -tags: - - Constructor - - JavaScript - - Reference -browser-compat: javascript.builtins.Error.Error -translation_of: Web/JavaScript/Reference/Global_Objects/Error/Error ---- - -
{{JSRef}}
- -

- Error 생성자는 오류 객체를 생성합니다. -

- -

구문

- -
-new Error()
-new Error(message)
-new Error(message, fileName)
-new Error(message, fileName, lineNumber)
-
- -

매개변수

- -
-
- message {{Optional_Inline}} -
-
사람이 읽을 수 있는 오류 메시지입니다.
-
- fileName {{Optional_Inline}}{{Non-standard_inline}} -
-
- 생성할 Error 객체의 fileName 속성으로 설정할 값입니다. 기본 값은 - Error() 생성자를 호출한 파일의 이름입니다. -
-
- lineNumber {{Optional_Inline}}{{Non-standard_inline}} -
-
- 생성할 Error 객체의 lineNumber 속성으로 설정할 값입니다. 기본 값은 - Error() 생성자를 호출한 줄의 번호입니다. -
-
- -

예제

- -

생성자 또는 함수 호출

- -

- Error를 {{JSxRef("Operators/new", "new")}} 없이 함수로써 호출한 경우에도 Error 객체를 - 반환합니다. 따라서 단순히 Error를 호출하기만 해도 new 키워드를 사용한 것과 같은 결과를 - 낳습니다. -

- -
-// 함수로 호출해도...
-const x = Error('함수 호출로 만들기!')
-
-// ...이렇게 생성자로 사용한 것과 같은 결과
-const y = new Error('"new" 키워드를 써서 만들기!')
-
- -

명세

- -{{Specifications}} - -

브라우저 호환성

- -

{{Compat}}

- -

같이 보기

- - diff --git a/files/ko/web/javascript/reference/global_objects/error/error/index.md b/files/ko/web/javascript/reference/global_objects/error/error/index.md new file mode 100644 index 0000000000..11b495c777 --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/error/error/index.md @@ -0,0 +1,81 @@ +--- +title: Error() 생성자 +slug: Web/JavaScript/Reference/Global_Objects/Error/Error +tags: + - Constructor + - JavaScript + - Reference +browser-compat: javascript.builtins.Error.Error +translation_of: Web/JavaScript/Reference/Global_Objects/Error/Error +--- + +
{{JSRef}}
+ +

+ Error 생성자는 오류 객체를 생성합니다. +

+ +

구문

+ +
+new Error()
+new Error(message)
+new Error(message, fileName)
+new Error(message, fileName, lineNumber)
+
+ +

매개변수

+ +
+
+ message {{Optional_Inline}} +
+
사람이 읽을 수 있는 오류 메시지입니다.
+
+ fileName {{Optional_Inline}}{{Non-standard_inline}} +
+
+ 생성할 Error 객체의 fileName 속성으로 설정할 값입니다. 기본 값은 + Error() 생성자를 호출한 파일의 이름입니다. +
+
+ lineNumber {{Optional_Inline}}{{Non-standard_inline}} +
+
+ 생성할 Error 객체의 lineNumber 속성으로 설정할 값입니다. 기본 값은 + Error() 생성자를 호출한 줄의 번호입니다. +
+
+ +

예제

+ +

생성자 또는 함수 호출

+ +

+ Error를 {{JSxRef("Operators/new", "new")}} 없이 함수로써 호출한 경우에도 Error 객체를 + 반환합니다. 따라서 단순히 Error를 호출하기만 해도 new 키워드를 사용한 것과 같은 결과를 + 낳습니다. +

+ +
+// 함수로 호출해도...
+const x = Error('함수 호출로 만들기!')
+
+// ...이렇게 생성자로 사용한 것과 같은 결과
+const y = new Error('"new" 키워드를 써서 만들기!')
+
+ +

명세

+ +{{Specifications}} + +

브라우저 호환성

+ +

{{Compat}}

+ +

같이 보기

+ + diff --git a/files/ko/web/javascript/reference/global_objects/error/filename/index.html b/files/ko/web/javascript/reference/global_objects/error/filename/index.html deleted file mode 100644 index 5961c6f875..0000000000 --- a/files/ko/web/javascript/reference/global_objects/error/filename/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Error.prototype.fileName -slug: Web/JavaScript/Reference/Global_Objects/Error/fileName -tags: - - JavaScript - - Non-standard - - Property - - Prototype -browser-compat: javascript.builtins.Error.fileName ---- -
{{JSRef}} {{non-standard_header}}
- -

fileName 속성은 이 오류가 발생한 파일의 경로를 포함합니다.

- -

설명

- -

이 비표준 속성은 이 오류가 발생한 파일의 경로를 포함합니다. 디버거 컨텍스트(예를 들어 Firefox 개발자 도구)에서 호출할 경우, "debugger eval code" 가 반환됩니다.

- -

예제

- -

fileName 사용하기

- -
var e = new Error('Could not parse input');
-throw e;
-// e.fileName could look like "file:///C:/example.html"
-
- -

명세

- -

표준의 일부가 아닙니다.

- -

브라우저 호환성

- -

{{Compat}}

- -

같이 보기

- - diff --git a/files/ko/web/javascript/reference/global_objects/error/filename/index.md b/files/ko/web/javascript/reference/global_objects/error/filename/index.md new file mode 100644 index 0000000000..5961c6f875 --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/error/filename/index.md @@ -0,0 +1,42 @@ +--- +title: Error.prototype.fileName +slug: Web/JavaScript/Reference/Global_Objects/Error/fileName +tags: + - JavaScript + - Non-standard + - Property + - Prototype +browser-compat: javascript.builtins.Error.fileName +--- +
{{JSRef}} {{non-standard_header}}
+ +

fileName 속성은 이 오류가 발생한 파일의 경로를 포함합니다.

+ +

설명

+ +

이 비표준 속성은 이 오류가 발생한 파일의 경로를 포함합니다. 디버거 컨텍스트(예를 들어 Firefox 개발자 도구)에서 호출할 경우, "debugger eval code" 가 반환됩니다.

+ +

예제

+ +

fileName 사용하기

+ +
var e = new Error('Could not parse input');
+throw e;
+// e.fileName could look like "file:///C:/example.html"
+
+ +

명세

+ +

표준의 일부가 아닙니다.

+ +

브라우저 호환성

+ +

{{Compat}}

+ +

같이 보기

+ + diff --git a/files/ko/web/javascript/reference/global_objects/error/index.html b/files/ko/web/javascript/reference/global_objects/error/index.html deleted file mode 100644 index 70b5662564..0000000000 --- a/files/ko/web/javascript/reference/global_objects/error/index.html +++ /dev/null @@ -1,298 +0,0 @@ ---- -title: Error -slug: Web/JavaScript/Reference/Global_Objects/Error -tags: - - Error - - JavaScript - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/Error -browser-compat: javascript.builtins.Error ---- - -
{{JSRef}}
- -

- Error 객체는 런타임 오류가 발생했을 때 던져집니다. - Error 객체를 사용자 지정 예외의 기반 객체로 사용할 수도 있습니다. - 아래 표준 내장 오류 유형을 참고하세요. -

- -

설명

- -

런타임 오류는 새로운 Error 객체를 생성하고 던집니다.

- -

오류 유형

- -

- JavaScript에는 일반적인 Error 생성자 외에도 여러 개의 중요 오류 - 생성자가 존재합니다. 클라이언트측 예외에 대해서는 - 제어 흐름과 에러 처리를 참고하세요. -

- -
-
{{jsxref("EvalError")}}
-
- 전역 함수 {{jsxref("eval", "eval()")}}에서 발생하는 오류의 인스턴스를 - 생성합니다. -
-
{{jsxref("RangeError")}}
-
- 숫자 변수나 매개변수가 유효한 범위를 벗어났음을 나타내는 오류 인스턴스를 - 생성합니다. -
-
{{jsxref("ReferenceError")}}
-
잘못된 참조를 했음을 나타내는 오류 인스턴스를 생성합니다.
-
{{jsxref("SyntaxError")}}
-
- {{jsxref("eval", "eval()")}}이 코드를 분석하는 중 잘못된 구문을 만났음을 - 나타내는 오류 인스턴스를 생성합니다. -
-
{{jsxref("TypeError")}}
-
- 변수나 매개변수가 유효한 자료형이 아님을 나타내는 오류 인스턴스를 - 생성합니다. -
-
{{jsxref("URIError")}}
-
- {{jsxref("encodeURI", "encodeURI()")}}나 {{jsxref("decodeURI", - "decodeURl()")}} 함수에 부적절한 매개변수를 제공했을 때 발생하는 오류의 - 인스턴스를 생성합니다. -
-
{{JSxRef("AggregateError")}}
-
- 하나의 동작이 여러 개의 오류 발생시키는 경우(예: - {{JSxRef("Promise.any()")}}) 여러 오류를 하나의 오류로 감싸는 인스턴스를 - 만듭니다. -
-
{{jsxref("InternalError")}} {{non-standard_inline}}
-
- JavaScript 엔진의 내부에서 오류가 발생했음을 나타내는 오류 인스턴스를 - 생성합니다. -
-
- -

생성자

- -
-
{{jsxref("Error/Error", "Error()")}}
-
새로운 Error 객체를 만듭니다.
-
- -

정적 메서드

- -
-
{{JSxRef("Error.captureStackTrace()")}}
-
- 오류 인스턴스의 {{JSxRef("Error.prototype.stack", "stack")}} 속성을 만드는 - 비표준 V8 함수 -
-
- -

인스턴스 속성

- -
-
{{jsxref("Error.prototype.message")}}
-
오류 메시지
-
{{jsxref("Error.prototype.name")}}
-
오류 이름
-
{{jsxref("Error.prototype.description")}}
-
- 오류를 설명하기 위한 비표준 마이크로소프트 속성. - {{jsxref("Error.prototype.message", "message")}}와 비슷합니다. -
-
{{jsxref("Error.prototype.number")}}
-
오류 번호를 위한 비표준 마이크로소프트 속성
-
{{jsxref("Error.prototype.fileName")}}
-
해당 오류를 발생시킨 파일의 경로를 표시하기 위한 비표준 모질라 속성
-
{{jsxref("Error.prototype.lineNumber")}}
-
- 해당 오류를 발생시킨 파일의 줄 번호를 표시하기 위한 비표준 모질라 속성 -
-
{{jsxref("Error.prototype.columnNumber")}}
-
- 해당 오류를 발생시킨 파일의 칸 번호를 표시하기 위한 비표준 모질라 속성 -
-
{{jsxref("Error.prototype.stack")}}
-
스택 추적을 위한 비표준 모질라 속성
-
- -

인스턴스 메서드

- -
-
{{jsxref("Error.prototype.toString()")}}
-
- 명시된 객체를 표현하기 위한 문자열을 반환합니다. - {{jsxref("Object.prototype.toString()")}} 메서드를 오버라이드합니다.. -
-
- -

예제

- -

- 일반적인 오류 던지기 -

- -

- Error 객체를 생성한 후엔 대개 {{jsxref("Statements/throw", - "throw")}} 키워드를 이용해 던집니다. {{jsxref("Statements/try...catch", - "try...catch")}} 구문을 이용하여 오류를 처리할 수 있습니다. -

- -
-try {
-  throw new Error("이런!");
-} catch (e) {
-  alert(e.name + ": " + e.message);
-}
-
- -

- 특정 오류 처리하기 -

- -

- 오류의 {{jsxref("Object.prototype.constructor", "constructor")}} 속성을 이용해 - 유형을 판별, 특정 오류만 처리할 수 있습니다. 만약 최신 Javascript 엔진에서 - 동작하는 코드를 작성한다면 {{jsxref("Operators/instanceof", - "instanceof")}} 키워드를 이용할 수도 있습니다. -

- -
-try {
-  foo.bar();
-} catch (e) {
-  if (e instanceof EvalError) {
-    alert(e.name + ": " + e.message);
-  } else if (e instanceof RangeError) {
-    alert(e.name + ": " + e.message);
-  }
-  // ... etc
-}
-
- -

사용자 정의 에러 타입

- -

- throw new MyError() 이후 instanceof MyError로 직접 - 만든 오류를 판별할 수 있도록 Error의 파생 오류 정의를 - 고려해보세요. 더 깔끔하고 일관적인 오류 처리 코드를 작성할 수 - 있습니다. StackOverflow의 "What's a good way to extend Error in JavaScript?"를 방문해 심도 있는 논의를 읽어보세요. -

- -

ES6 사용자 정의 오류 클래스

- -
-

- Babel 버전 7 미만으로 사용자 정의 오류 클래스를 처리하려면 - {{jsxref("Object.defineProperty()")}} 메서드를 사용해 정의해야만 합니다. - 그렇지 않으면 오래된 Babel 및 다른 트랜스파일러가 추가 설정 없이 코드를 처리할 수 없습니다. -

-
- -
-

- ES2015 클래스를 사용할 때, 일부 브라우저는 CustomError 생성자를 - 스택 트레이스에 포함합니다. -

-
- -
-class CustomError extends Error {
-  constructor(foo = 'bar', ...params) {
-    // Pass remaining arguments (including vendor specific ones) to parent constructor
-    super(...params);
-
-    // Maintains proper stack trace for where our error was thrown (only available on V8)
-    if (Error.captureStackTrace) {
-      Error.captureStackTrace(this, CustomError);
-    }
-
-    // Custom debugging information
-    this.foo = foo;
-    this.date = new Date();
-  }
-}
-
-try {
-  throw new CustomError('baz', 'bazMessage');
-} catch(e){
-  console.log(e.foo); //baz
-  console.log(e.message); //bazMessage
-  console.log(e.stack); //stacktrace
-}
- -

ES5 사용자 정의 오류 객체

- -
-

- 프로토타입 선언을 사용하면 모든 브라우저가 CustomError 생성자를 - 스택 트레이스에 포함합니다. -

-
- -
-function CustomError(foo, message, fileName, lineNumber) {
-  var instance = new Error(message, fileName, lineNumber);
-  instance.foo = foo;
-  Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
-  if (Error.captureStackTrace) {
-    Error.captureStackTrace(instance, CustomError);
-  }
-  return instance;
-}
-
-CustomError.prototype = Object.create(Error.prototype, {
-  constructor: {
-    value: Error,
-    enumerable: false,
-    writable: true,
-    configurable: true
-  }
-});
-
-if (Object.setPrototypeOf){
-  Object.setPrototypeOf(CustomError, Error);
-} else {
-  CustomError.__proto__ = Error;
-}
-
-
-try {
-  throw new CustomError('baz', 'bazMessage');
-} catch(e){
-  console.log(e.foo); //baz
-  console.log(e.message) ;//bazMessage
-}
-
- -

명세

- -{{Specifications}} - -

브라우저 호환성

- -

{{Compat}}

- -

같이 보기

- - diff --git a/files/ko/web/javascript/reference/global_objects/error/index.md b/files/ko/web/javascript/reference/global_objects/error/index.md new file mode 100644 index 0000000000..70b5662564 --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/error/index.md @@ -0,0 +1,298 @@ +--- +title: Error +slug: Web/JavaScript/Reference/Global_Objects/Error +tags: + - Error + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error +browser-compat: javascript.builtins.Error +--- + +
{{JSRef}}
+ +

+ Error 객체는 런타임 오류가 발생했을 때 던져집니다. + Error 객체를 사용자 지정 예외의 기반 객체로 사용할 수도 있습니다. + 아래 표준 내장 오류 유형을 참고하세요. +

+ +

설명

+ +

런타임 오류는 새로운 Error 객체를 생성하고 던집니다.

+ +

오류 유형

+ +

+ JavaScript에는 일반적인 Error 생성자 외에도 여러 개의 중요 오류 + 생성자가 존재합니다. 클라이언트측 예외에 대해서는 + 제어 흐름과 에러 처리를 참고하세요. +

+ +
+
{{jsxref("EvalError")}}
+
+ 전역 함수 {{jsxref("eval", "eval()")}}에서 발생하는 오류의 인스턴스를 + 생성합니다. +
+
{{jsxref("RangeError")}}
+
+ 숫자 변수나 매개변수가 유효한 범위를 벗어났음을 나타내는 오류 인스턴스를 + 생성합니다. +
+
{{jsxref("ReferenceError")}}
+
잘못된 참조를 했음을 나타내는 오류 인스턴스를 생성합니다.
+
{{jsxref("SyntaxError")}}
+
+ {{jsxref("eval", "eval()")}}이 코드를 분석하는 중 잘못된 구문을 만났음을 + 나타내는 오류 인스턴스를 생성합니다. +
+
{{jsxref("TypeError")}}
+
+ 변수나 매개변수가 유효한 자료형이 아님을 나타내는 오류 인스턴스를 + 생성합니다. +
+
{{jsxref("URIError")}}
+
+ {{jsxref("encodeURI", "encodeURI()")}}나 {{jsxref("decodeURI", + "decodeURl()")}} 함수에 부적절한 매개변수를 제공했을 때 발생하는 오류의 + 인스턴스를 생성합니다. +
+
{{JSxRef("AggregateError")}}
+
+ 하나의 동작이 여러 개의 오류 발생시키는 경우(예: + {{JSxRef("Promise.any()")}}) 여러 오류를 하나의 오류로 감싸는 인스턴스를 + 만듭니다. +
+
{{jsxref("InternalError")}} {{non-standard_inline}}
+
+ JavaScript 엔진의 내부에서 오류가 발생했음을 나타내는 오류 인스턴스를 + 생성합니다. +
+
+ +

생성자

+ +
+
{{jsxref("Error/Error", "Error()")}}
+
새로운 Error 객체를 만듭니다.
+
+ +

정적 메서드

+ +
+
{{JSxRef("Error.captureStackTrace()")}}
+
+ 오류 인스턴스의 {{JSxRef("Error.prototype.stack", "stack")}} 속성을 만드는 + 비표준 V8 함수 +
+
+ +

인스턴스 속성

+ +
+
{{jsxref("Error.prototype.message")}}
+
오류 메시지
+
{{jsxref("Error.prototype.name")}}
+
오류 이름
+
{{jsxref("Error.prototype.description")}}
+
+ 오류를 설명하기 위한 비표준 마이크로소프트 속성. + {{jsxref("Error.prototype.message", "message")}}와 비슷합니다. +
+
{{jsxref("Error.prototype.number")}}
+
오류 번호를 위한 비표준 마이크로소프트 속성
+
{{jsxref("Error.prototype.fileName")}}
+
해당 오류를 발생시킨 파일의 경로를 표시하기 위한 비표준 모질라 속성
+
{{jsxref("Error.prototype.lineNumber")}}
+
+ 해당 오류를 발생시킨 파일의 줄 번호를 표시하기 위한 비표준 모질라 속성 +
+
{{jsxref("Error.prototype.columnNumber")}}
+
+ 해당 오류를 발생시킨 파일의 칸 번호를 표시하기 위한 비표준 모질라 속성 +
+
{{jsxref("Error.prototype.stack")}}
+
스택 추적을 위한 비표준 모질라 속성
+
+ +

인스턴스 메서드

+ +
+
{{jsxref("Error.prototype.toString()")}}
+
+ 명시된 객체를 표현하기 위한 문자열을 반환합니다. + {{jsxref("Object.prototype.toString()")}} 메서드를 오버라이드합니다.. +
+
+ +

예제

+ +

+ 일반적인 오류 던지기 +

+ +

+ Error 객체를 생성한 후엔 대개 {{jsxref("Statements/throw", + "throw")}} 키워드를 이용해 던집니다. {{jsxref("Statements/try...catch", + "try...catch")}} 구문을 이용하여 오류를 처리할 수 있습니다. +

+ +
+try {
+  throw new Error("이런!");
+} catch (e) {
+  alert(e.name + ": " + e.message);
+}
+
+ +

+ 특정 오류 처리하기 +

+ +

+ 오류의 {{jsxref("Object.prototype.constructor", "constructor")}} 속성을 이용해 + 유형을 판별, 특정 오류만 처리할 수 있습니다. 만약 최신 Javascript 엔진에서 + 동작하는 코드를 작성한다면 {{jsxref("Operators/instanceof", + "instanceof")}} 키워드를 이용할 수도 있습니다. +

+ +
+try {
+  foo.bar();
+} catch (e) {
+  if (e instanceof EvalError) {
+    alert(e.name + ": " + e.message);
+  } else if (e instanceof RangeError) {
+    alert(e.name + ": " + e.message);
+  }
+  // ... etc
+}
+
+ +

사용자 정의 에러 타입

+ +

+ throw new MyError() 이후 instanceof MyError로 직접 + 만든 오류를 판별할 수 있도록 Error의 파생 오류 정의를 + 고려해보세요. 더 깔끔하고 일관적인 오류 처리 코드를 작성할 수 + 있습니다. StackOverflow의 "What's a good way to extend Error in JavaScript?"를 방문해 심도 있는 논의를 읽어보세요. +

+ +

ES6 사용자 정의 오류 클래스

+ +
+

+ Babel 버전 7 미만으로 사용자 정의 오류 클래스를 처리하려면 + {{jsxref("Object.defineProperty()")}} 메서드를 사용해 정의해야만 합니다. + 그렇지 않으면 오래된 Babel 및 다른 트랜스파일러가 추가 설정 없이 코드를 처리할 수 없습니다. +

+
+ +
+

+ ES2015 클래스를 사용할 때, 일부 브라우저는 CustomError 생성자를 + 스택 트레이스에 포함합니다. +

+
+ +
+class CustomError extends Error {
+  constructor(foo = 'bar', ...params) {
+    // Pass remaining arguments (including vendor specific ones) to parent constructor
+    super(...params);
+
+    // Maintains proper stack trace for where our error was thrown (only available on V8)
+    if (Error.captureStackTrace) {
+      Error.captureStackTrace(this, CustomError);
+    }
+
+    // Custom debugging information
+    this.foo = foo;
+    this.date = new Date();
+  }
+}
+
+try {
+  throw new CustomError('baz', 'bazMessage');
+} catch(e){
+  console.log(e.foo); //baz
+  console.log(e.message); //bazMessage
+  console.log(e.stack); //stacktrace
+}
+ +

ES5 사용자 정의 오류 객체

+ +
+

+ 프로토타입 선언을 사용하면 모든 브라우저가 CustomError 생성자를 + 스택 트레이스에 포함합니다. +

+
+ +
+function CustomError(foo, message, fileName, lineNumber) {
+  var instance = new Error(message, fileName, lineNumber);
+  instance.foo = foo;
+  Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
+  if (Error.captureStackTrace) {
+    Error.captureStackTrace(instance, CustomError);
+  }
+  return instance;
+}
+
+CustomError.prototype = Object.create(Error.prototype, {
+  constructor: {
+    value: Error,
+    enumerable: false,
+    writable: true,
+    configurable: true
+  }
+});
+
+if (Object.setPrototypeOf){
+  Object.setPrototypeOf(CustomError, Error);
+} else {
+  CustomError.__proto__ = Error;
+}
+
+
+try {
+  throw new CustomError('baz', 'bazMessage');
+} catch(e){
+  console.log(e.foo); //baz
+  console.log(e.message) ;//bazMessage
+}
+
+ +

명세

+ +{{Specifications}} + +

브라우저 호환성

+ +

{{Compat}}

+ +

같이 보기

+ + diff --git a/files/ko/web/javascript/reference/global_objects/error/linenumber/index.html b/files/ko/web/javascript/reference/global_objects/error/linenumber/index.html deleted file mode 100644 index 3acab039ed..0000000000 --- a/files/ko/web/javascript/reference/global_objects/error/linenumber/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Error.prototype.lineNumber -slug: Web/JavaScript/Reference/Global_Objects/Error/lineNumber -tags: - - JavaScript - - Non-standard - - Property - - Prototype - - Reference -browser-compat: javascript.builtins.Error.lineNumber ---- -
{{JSRef}} {{non-standard_header}}
- -

lineNumber 속성은 이 오류가 발생한 파일의 행 번호를 포함합니다.

- -

예제

- -

lineNumber 사용하기

- -
var e = new Error('Could not parse input');
-throw e;
-console.log(e.lineNumber) // 2
-
- -

오류 이벤트를 사용하는 또 다른 예제

- -
window.addEventListener('error', function(e) {
-  console.log(e.lineNumber); // 5
-});
-var e = new Error('Could not parse input');
-throw e;
-
- -

이는 표준 기능이 아니며 광범위하게 지원되지 않습니다. 아래 브라우저 호환성 표를 참고하십시오.

- -

명세

- -

표준의 일부가 아닙니다.

- -

브라우저 호환성

- -

{{Compat}}

- -

같이 보기

- - diff --git a/files/ko/web/javascript/reference/global_objects/error/linenumber/index.md b/files/ko/web/javascript/reference/global_objects/error/linenumber/index.md new file mode 100644 index 0000000000..3acab039ed --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/error/linenumber/index.md @@ -0,0 +1,50 @@ +--- +title: Error.prototype.lineNumber +slug: Web/JavaScript/Reference/Global_Objects/Error/lineNumber +tags: + - JavaScript + - Non-standard + - Property + - Prototype + - Reference +browser-compat: javascript.builtins.Error.lineNumber +--- +
{{JSRef}} {{non-standard_header}}
+ +

lineNumber 속성은 이 오류가 발생한 파일의 행 번호를 포함합니다.

+ +

예제

+ +

lineNumber 사용하기

+ +
var e = new Error('Could not parse input');
+throw e;
+console.log(e.lineNumber) // 2
+
+ +

오류 이벤트를 사용하는 또 다른 예제

+ +
window.addEventListener('error', function(e) {
+  console.log(e.lineNumber); // 5
+});
+var e = new Error('Could not parse input');
+throw e;
+
+ +

이는 표준 기능이 아니며 광범위하게 지원되지 않습니다. 아래 브라우저 호환성 표를 참고하십시오.

+ +

명세

+ +

표준의 일부가 아닙니다.

+ +

브라우저 호환성

+ +

{{Compat}}

+ +

같이 보기

+ + diff --git a/files/ko/web/javascript/reference/global_objects/error/message/index.html b/files/ko/web/javascript/reference/global_objects/error/message/index.html deleted file mode 100644 index 4d9bb4dff7..0000000000 --- a/files/ko/web/javascript/reference/global_objects/error/message/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Error.prototype.message -slug: Web/JavaScript/Reference/Global_Objects/Error/message -tags: - - JavaScript - - Property - - Prototype -browser-compat: javascript.builtins.Error.message ---- -
{{JSRef}}
- -

message 속성은 사람이 읽을 수 있는 오류의 설명입니다.

- -

설명

- -

이 속성은 오류가 있거나 설정된 경우 오류에 대한 간략한 설명을 포함합니다. SpiderMonkey는 예외적으로 message 속성을 광범위하게 사용합니다. {{jsxref("Error.prototype.name", "name")}} 속성과 결합된 message 속성은 {{jsxref("Error.prototype.toString()")}} 메서드에서 오류의 문자열 표현을 생성하는 데 사용됩니다.

- -

기본적으로 message 속성은 빈 문자열이지만, {{jsxref("Error/Error", "Error")}} 생성자에 대한 첫 번째 인수로 메시지를 지정하여 인스턴스에 대해 이 동작을 재정의할 수 있습니다.

- -

예제

- -

사용자 정의 오류 발생시키기

- -
var e = new Error('Could not parse input');
-// e.message is 'Could not parse input'
-throw e;
-
- -

명세

- -{{Specifications}} - -

브라우저 호환성

- -

{{Compat}}

- -

같이 보기

- - diff --git a/files/ko/web/javascript/reference/global_objects/error/message/index.md b/files/ko/web/javascript/reference/global_objects/error/message/index.md new file mode 100644 index 0000000000..4d9bb4dff7 --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/error/message/index.md @@ -0,0 +1,42 @@ +--- +title: Error.prototype.message +slug: Web/JavaScript/Reference/Global_Objects/Error/message +tags: + - JavaScript + - Property + - Prototype +browser-compat: javascript.builtins.Error.message +--- +
{{JSRef}}
+ +

message 속성은 사람이 읽을 수 있는 오류의 설명입니다.

+ +

설명

+ +

이 속성은 오류가 있거나 설정된 경우 오류에 대한 간략한 설명을 포함합니다. SpiderMonkey는 예외적으로 message 속성을 광범위하게 사용합니다. {{jsxref("Error.prototype.name", "name")}} 속성과 결합된 message 속성은 {{jsxref("Error.prototype.toString()")}} 메서드에서 오류의 문자열 표현을 생성하는 데 사용됩니다.

+ +

기본적으로 message 속성은 빈 문자열이지만, {{jsxref("Error/Error", "Error")}} 생성자에 대한 첫 번째 인수로 메시지를 지정하여 인스턴스에 대해 이 동작을 재정의할 수 있습니다.

+ +

예제

+ +

사용자 정의 오류 발생시키기

+ +
var e = new Error('Could not parse input');
+// e.message is 'Could not parse input'
+throw e;
+
+ +

명세

+ +{{Specifications}} + +

브라우저 호환성

+ +

{{Compat}}

+ +

같이 보기

+ + diff --git a/files/ko/web/javascript/reference/global_objects/error/name/index.html b/files/ko/web/javascript/reference/global_objects/error/name/index.html deleted file mode 100644 index afb8ed0ddb..0000000000 --- a/files/ko/web/javascript/reference/global_objects/error/name/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Error.prototype.name -slug: Web/JavaScript/Reference/Global_Objects/Error/name -translation_of: Web/JavaScript/Reference/Global_Objects/Error/name -tags: - - JavaScript - - Property - - Prototype -browser-compat: javascript.builtins.Error.name ---- -
{{JSRef}}
- -
name 속성은 오류 타입을 설명하기 위한 이름을 나타냅니다. 초기값은 "Error"입니다.
- -

설명

- -

기본적으로 {{jsxref("Error")}} 인스턴스에는 "Error"라는 이름을 갖습니다. name 속성과 -{{jsxref("Error.prototype.message", "message")}} 속성은 {{jsxref("Error.prototype.toString()")}} 메서드에서 오류의 문자열 표현을 생성하는 데 - 사용됩니다.

- -

예제

- -

사용자 정의 에러 발생시키기

- -
var e = new Error('Malformed input'); // e.name은 'Error'
-
-e.name = 'ParseError';
-throw e;
-// e.toString()은 'ParseError: Malformed input'을 반환합니다
-
- -

명세

- -{{Specifications}} - -

브라우저 호환성

- -

{{Compat}}

- -

같이 보기

- - diff --git a/files/ko/web/javascript/reference/global_objects/error/name/index.md b/files/ko/web/javascript/reference/global_objects/error/name/index.md new file mode 100644 index 0000000000..afb8ed0ddb --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/error/name/index.md @@ -0,0 +1,45 @@ +--- +title: Error.prototype.name +slug: Web/JavaScript/Reference/Global_Objects/Error/name +translation_of: Web/JavaScript/Reference/Global_Objects/Error/name +tags: + - JavaScript + - Property + - Prototype +browser-compat: javascript.builtins.Error.name +--- +
{{JSRef}}
+ +
name 속성은 오류 타입을 설명하기 위한 이름을 나타냅니다. 초기값은 "Error"입니다.
+ +

설명

+ +

기본적으로 {{jsxref("Error")}} 인스턴스에는 "Error"라는 이름을 갖습니다. name 속성과 +{{jsxref("Error.prototype.message", "message")}} 속성은 {{jsxref("Error.prototype.toString()")}} 메서드에서 오류의 문자열 표현을 생성하는 데 + 사용됩니다.

+ +

예제

+ +

사용자 정의 에러 발생시키기

+ +
var e = new Error('Malformed input'); // e.name은 'Error'
+
+e.name = 'ParseError';
+throw e;
+// e.toString()은 'ParseError: Malformed input'을 반환합니다
+
+ +

명세

+ +{{Specifications}} + +

브라우저 호환성

+ +

{{Compat}}

+ +

같이 보기

+ + diff --git a/files/ko/web/javascript/reference/global_objects/error/tostring/index.html b/files/ko/web/javascript/reference/global_objects/error/tostring/index.html deleted file mode 100644 index a37cdad01f..0000000000 --- a/files/ko/web/javascript/reference/global_objects/error/tostring/index.html +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Error.prototype.toString() -slug: Web/JavaScript/Reference/Global_Objects/Error/toString -tags: -- JavaScript -- Method -- Prototype -browser-compat: javascript.builtins.Error.toString ---- -
{{JSRef}}
- -

toString() 메서드는 명시된 {{jsxref("Error")}} 객체를 표현하는 문자열을 반환합니다.

- -

구문

- -
toString()
- -

반환값

- -

명시된 {{jsxref("Error")}} 객체를 표현하는 문자열.

- -

설명

- -

{{jsxref("Error")}} 객체는 모든 객체가 상속받는 {{jsxref("Object.prototype.toString()")}} 메서드를 재정의합니다. - 이 의미는 다음과 같습니다({{jsxref("Object")}}과 {{jsxref("String")}}는 그들 만의 원본 값이 있다고 가정합니다):

- -
Error.prototype.toString = function() {
-  'use strict';
-
-  var obj = Object(this);
-  if (obj !== this) {
-    throw new TypeError();
-  }
-
-  var name = this.name;
-  name = (name === undefined) ? 'Error' : String(name);
-
-  var msg = this.message;
-  msg = (msg === undefined) ? '' : String(msg);
-
-  if (name === '') {
-    return msg;
-  }
-  if (msg === '') {
-    return name;
-  }
-
-  return name + ': ' + msg;
-};
-
- -

예제

- -

toString() 사용하기

- -
var e1 = new Error('fatal error');
-console.log(e1.toString()); // 'Error: fatal error'
-
-var e2 = new Error('fatal error');
-e2.name = undefined;
-console.log(e2.toString()); // 'Error: fatal error'
-
-var e3 = new Error('fatal error');
-e3.name = '';
-console.log(e3.toString()); // 'fatal error'
-
-var e4 = new Error('fatal error');
-e4.name = '';
-e4.message = undefined;
-console.log(e4.toString()); // ''
-
-var e5 = new Error('fatal error');
-e5.name = 'hello';
-e5.message = undefined;
-console.log(e5.toString()); // 'hello'
-
- -

명세

- -{{Specifications}} - -

브라우저 호환성

- -

{{Compat}}

- -

같이 보기

- - diff --git a/files/ko/web/javascript/reference/global_objects/error/tostring/index.md b/files/ko/web/javascript/reference/global_objects/error/tostring/index.md new file mode 100644 index 0000000000..a37cdad01f --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/error/tostring/index.md @@ -0,0 +1,90 @@ +--- +title: Error.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/Error/toString +tags: +- JavaScript +- Method +- Prototype +browser-compat: javascript.builtins.Error.toString +--- +
{{JSRef}}
+ +

toString() 메서드는 명시된 {{jsxref("Error")}} 객체를 표현하는 문자열을 반환합니다.

+ +

구문

+ +
toString()
+ +

반환값

+ +

명시된 {{jsxref("Error")}} 객체를 표현하는 문자열.

+ +

설명

+ +

{{jsxref("Error")}} 객체는 모든 객체가 상속받는 {{jsxref("Object.prototype.toString()")}} 메서드를 재정의합니다. + 이 의미는 다음과 같습니다({{jsxref("Object")}}과 {{jsxref("String")}}는 그들 만의 원본 값이 있다고 가정합니다):

+ +
Error.prototype.toString = function() {
+  'use strict';
+
+  var obj = Object(this);
+  if (obj !== this) {
+    throw new TypeError();
+  }
+
+  var name = this.name;
+  name = (name === undefined) ? 'Error' : String(name);
+
+  var msg = this.message;
+  msg = (msg === undefined) ? '' : String(msg);
+
+  if (name === '') {
+    return msg;
+  }
+  if (msg === '') {
+    return name;
+  }
+
+  return name + ': ' + msg;
+};
+
+ +

예제

+ +

toString() 사용하기

+ +
var e1 = new Error('fatal error');
+console.log(e1.toString()); // 'Error: fatal error'
+
+var e2 = new Error('fatal error');
+e2.name = undefined;
+console.log(e2.toString()); // 'Error: fatal error'
+
+var e3 = new Error('fatal error');
+e3.name = '';
+console.log(e3.toString()); // 'fatal error'
+
+var e4 = new Error('fatal error');
+e4.name = '';
+e4.message = undefined;
+console.log(e4.toString()); // ''
+
+var e5 = new Error('fatal error');
+e5.name = 'hello';
+e5.message = undefined;
+console.log(e5.toString()); // 'hello'
+
+ +

명세

+ +{{Specifications}} + +

브라우저 호환성

+ +

{{Compat}}

+ +

같이 보기

+ + -- cgit v1.2.3-54-g00ecf