자바스크립트 오류(Errors) – Throw 및 Catch

try 문을 사용하여 코드 블록에 대하여 오류 테스트 할 수 있습니다.

catch 문을 사용하여 오류를 처리할(handle) 수 있습니다.

throw 문을 사용하여 사용자 정의 오류(custom errors)를 만들 수 있습니다.

finally 문을 사용하여 결과에 관계없이, try 및 catch 이후, 코드를 실행할 수 있습니다.


오류는 발생합니다!

자바스크립트 코드를 실행할 때 다른 오류(different errors)들이 발생할 수 있습니다.

프로그래머가 작성한 코딩 오류, 잘못된 입력으로 인한 오류 및 기타 예측할 수 없는 오류가 있을 수 있습니다.

Example

이 예는 의도적으로 오류를 발생시키기 위해 adddlert라는 경고를 작성한 것입니다:


자바스크립트 try 및 catch

try 문은, 실행되는 동안 오류를 테스트할, 코드 블록을 정의합니다.

catch문은, try 블록에서 오류가 발생할 경우, 실행될 코드 블록을 정의합니다.

자바스크립트 trycatch 문은 한 쌍으로 작성됩니다:


자바스크립트 Throws 오류

오류가 발생하면, 자바스크립트는 정상적으로 중지되고, 오류 메시지를 만듭니다.

기술적인 용어는 다음과 같습니다: 자바스크립트가 예외를 throw합니다 (오류를 throw합니다) (throw an exception (throw an error)).


throw 문

throw 문을 사용하여 사용자지정 오류(custom error)를 만들수 있습니다.

기술적으로 예외를 throw할 수 있습니다 (오류를 throw합니다) (throw an exception (throw an error)).

예외는 자바 스크립트 문자열, 숫자, 부울 또는 객체(a JavaScript String, a Number, a Boolean or an Object)일 수 있습니다.:

trycatch를 함께 throw하면, 프로그램의 흐름(program flow)을 제어하고 사용자지정 오류 메시지(custom error messages)를 만들 수 있습니다.


입력 유효성검사 예제 (Input Validation Example)

이 예는 입력한 내용을 검사합니다. 값이 틀리면 예외(err)를 발생시킵니다(is thrown).

예외(err)가 catch 문에 의해 catch되고 사용자정의 오류 메시지가 표시됩니다.:

5이상 10이하의 숫자를 입력하십시오:



HTML 유효성검사 (HTML Validation)

위 코드는 예제일 뿐입니다.

최신 브라우저는, HTML 속성에서 정의한 사전 정의된 유효성검사 규칙(predefined validation rules)을 사용한, 내장된 HTML 유효성검사와 자바스크립트를 조합하여 사용합니다:

양식 유효성검사(forms validation)에 대한 자세한 내용은 이 자습서의 뒷부분에 다룹니다.


finally 문

finally 문을 사용하여, 결과에 관계없이, try 및 catch 다음에 코드를 실행할 수 있습니다:

Example

5이상 10이하의 숫자를 입력하십시오:



Error 객체(Object)

자바스크립트에는 오류가 발생할 때 오류 정보를 제공하는 내장된 오류 객체(a built in error object)가 있습니다.

오류 객체는 2개의 유용한 속성을 제공합니다: name과 message.


오류 객체 속성 (Error Object Properties)

Property Description
name 오류(error) name을 설정하거나 반환합니다
message 오류 메시지(error message)(문자열(a string))를 설정하거나 반환합니다

오류 Name 값 (Error Name Values)

오류 name 속성으로 6개의 다른 값이 반환됩니다:

Error Name Description
EvalError eval() 함수에서 오류가 발생합니다
RangeError 숫자가 "범위 밖"에 있습니다
ReferenceError 부적절한(illegal) 참조(reference)입니다
SyntaxError 구문(syntax) 오류입니다
TypeError 유형(type) 오류입니다
URIError encodeURI()안에 오류가 있습니다

6개의 오류 값을 아래에서 설명합니다.


Eval Error

EvalError는 eval() 함수에 오류가 있음을 알려줍니다.


Range Error

RangeError는 유효한 값의 범위를 벗어나는 숫자를 사용하는 경우 발생합니다(is thrown).

예: 숫자의 유효 자릿수(significant digits of a number)를 500으로 설정할 수 없습니다.

Example


참조 오류 (Reference Error)

ReferenceError는 선언되지 않은 변수(variable)(참조(reference))를 사용하는 경우 발생합니다(is thrown):

Example

설정하지 않은 변수(a non-existing variable)의 값(value)을 사용할 수 없습니다:


구문 오류 (Syntax Error)

SyntaxError는 구문 오류가 있는 코드를 평가하려고(evaluate) 하면 발생합니다(is thrown).

Example


유형 오류 (Type Error)

TypeError는 예상 유형(expected types)의 범위를 벗어나는 값을 사용하는 경우 발생합니다(is thrown):

Example

숫자를 대문자로 변환할 수 없습니다:


URI 오류 (URI Error)

URIError는 URI 함수에 잘못된 문자(illegal characters)를 사용하는 경우 발생합니다(is thrown):

Example

일부 문자는 URI 디코딩 할 수 없습니다:


비표준 오류 객체 속성 (Non-Standard Error Object Properties)

답글 남기기