에러가 발생하면 에러 객체가 throw 된다. 이 에러 객체는 built-in constructor 인 EvalError
, RangeError
, ReferenceError
, SyntaxError
, TypeError
, URIError
에 의해서 생성된다. 이 constructor들은 모두 Error
객체로부터 상속된다.
에러가 발생하였을 때,try
, catch
, finally
를 이용하여 에러를 핸들링하는 메커니즘을 만들면 아주 유용하다.
사용법은 간단하다.
try {
function(somethingToDo) {...}
} catch(error) {
function(error) {...}
} finally {
function(something) {...}
}
try
statement 블록에 내가 하고자 하는 동작을 구현하고, catch
는 Error Object
를 인수로 받아 처리한다. finally
키워드는 성공, 실패 여부 상관없이 실행될 코드이다.
Error Object
의 대표적인 프로퍼티로 .name
과 .message
가 있다. 이 두 프로퍼티는 브라우저 종류와 상관 없이 공통적으로 쓰이는 프로퍼티이며, 말그대로 에러의 이름과 에러 메세지를 반환한다. 하지만, 반환되는 값은 브라우저별로 다를 수 있다.
error.name
: Error Object
를 생성하는데 사용된 constructor의 이름을 반환한다.
error.message
: 에러의 내용을 반환한다.
일부러 에러를 발생시키는 것 또한 가능하다.
throw new Error()
또는 다른 어떤 에러 constructor로 발생시킬 수 있다. throw
statement를 통해 자바스크립트 엔진이 에러를 인식할 수 있게 한다.
new Error()
말고, 객체 리터럴 방식으로도 에러를 발생시킬 수 있다.
throw {
name: "MyError",
message: "Made by MySelf"
}