다음과 같은 코드가 있다. 이를 실행하면
console.log('시작');
const name = '신짱구';
console.log(name);
console.log(age);
console.log('끝');
정의 되지 않은 age 변수에 의해 에러가 발생하고, '끝' 이라는 문자열은 출력되지 않는다.
자바스크립트로 안정적인 프로그램을 만들기 위해서는, 이러한에러를 다루는 방법이 중요하다.
자바스크립트는 코드를 실행할 때, 에러가 발생하면 그 에러에 대한 정보를 담은 에러 객체를 생성함. console 에서보는 에러메세지도 에러 객체를 담고 있음.
에러객체는 에러의 이름을 담은 name 프로퍼티와, 내용을 담은 message 프로퍼티를 가지고 있다.
에러는 크게 세 타입으로 분류될 수 있는데,
1. 존재하지 않는 함수나 변수를 호출할 때 발생하는 에러인 RefferenceError
2. 잘못된 방식으로 자료형을 다룰때 발생하는 TypeError ex) 문자열에 splice 메소드를 사용한다던지..
3. 문법에 맞지 않게 코드를 작성할때 발생하는 SyntaxError
- 특히 이 에러는 코드 자체를 실행하기도 전에 에러가 발생한다.
다른 에러 객체의 종류
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Error
에러객체에는 이름을 담은 name 프로퍼티와 내용을 담은 message 프로퍼티를 가지고 있다.
에러객체의 이름과 내용의 형식을 맞추면 직접 에러 객체를 만들어 낼 수 있다.
다음과 같이 에러객체를 만들어 에러를 인위적으로 발생시키면,
console.log('시작')
const error = new TypeError('타입 에러가 발생했습니다!');
throw error; // 에러를 인위적으로 발생시킴
console.log(error.name);
console.log(error.message);
console.log('끝')
작성한 에러 객체가 에러로 발생하는 것을 확인할 수 있다. 또한, 에러가 발생한 시점 이후의 코드는 동작하지 않음.
'JavaScript > Modern JavaScript' 카테고리의 다른 글
[JavaScript] try catch 활용하기 (0) | 2023.05.19 |
---|---|
[JavaScript] try catch 문 (0) | 2023.05.19 |
[JavaScript] null 병합 연산자 (0) | 2023.05.18 |
[JavaScript] 옵셔널 체이닝 (Optional Chaining) (0) | 2023.05.18 |
[JavaScript] 조건 연산자/ 삼항 연산자 (0) | 2023.05.18 |