try - catch 문을 사용해 발생한 에러를 적절하게 대응하면 프로그램은 강제 종료되지 않고 계속해서 코드를 실행시킬 수 있음
예외적인 상황에 적절하게 대처하지 않으면 에러로 이어질 가능성이 큼
에러나 예외적인 상황은 너무나 다양하기 때문에 아무런 조치 없이 프로그램이 강제 종료된다면 원인을 파악하여 대응하기 어려움
try - catch - finally 문
try {
// 실행할 코드 (에러가 발생할 가능성이 있는 코드)
} catch (err) {
// try 코드 블록에서 에러가 발생하면 이 블록의 코드가 실행됨
// err 에는 try 코드 블록에서 발생한 Error 객체가 전달됨
} finally {
// 에러 발생과 상관없이 반드시 한 번 실행됨
}
Error 객체
Error 생성자 함수는 에러 객체를 생성함
에러 객체는 message 프로퍼티와 stack 프로퍼티를 갖음
message : Error 생성자 함수에 인수로 전달한 에러 메시지
stack : 에러를 발생시킨 콜 스택의 호출 정보를 나타내는 문자열, 디버깅 목적
생성자 함수
인스턴스
Error
일반적 에러 객체
SyntaxError
자바스크립트 문법에 맞지 않는 문을 해석할 때 발생하는 에러 객체
ReferenceError
참조할 수 없는 식별자를 참조했을 때 발생하는 에러 객체
TypeError
피연산자 또는 인수의 데이터 타입이 유효하지 않을 때 발생하는 에러 객체
RangeError
숫자값의 허용 범위를 벗어났을 때 발생하는 에러 객체
URIError
encodeURI 또는 decondeURI 함수에 부적절한 인수를 전달했을 때 발생하는 에러 객체