try {
} catch(err) {
console.log(error);
}
try 안에서 오류가 발생하면 각 오류에 해당하는 객체가 생성되고
곧바로 catch로 넘어가 인자로 error 객체를 조회할 수 있게 된다.
다음과 같은 오류 객체가 생성된 것과 같다.
let error = new Error(message);
let error = new SyntaxError(message);
let error = new ReferenceError(message);
let error = new TypeError(message);
error.name에는 생성자과 이름과 동일한 값이 들어 있고 (Error, SyntaxError)
error.message에는 생성자에 넣은 인자 값이 들어 있다.
let error = new Error('에러가 발생했습니다.');
console.log(error.message); // '에러가 발생했습니다.'
어떤 경우에는 직접 에러를 만들어줄 필요가 있다.
서버에서 받은 객체의 속성에 빠진 게 있을 때에는
클라이언트에 문제를 주겠지만 그 자체로는 에러가 아니기 때문에
에러를 던져줘야 한다.
다음과 같이 에러를 발생시킬 수 있다.
throw 아무값;
보통은 throw 다음에 에러 객체를 생성해서 쓴다.
var obj = { id: 1 }
try {
if(!obj.name) {
throw new Error('받은 객체의 이름 속성이 존재하지 않습니다.'); // 에러 발생
}
} catch(error) {
console.log(error); // Error: 받은 객체의 이름 속성이 존재하지 않습니다.
}
참고 :
try, catch와 에러 핸들링
'자바스크립트 > 비동기' 카테고리의 다른 글
Promise.all (0) | 2020.07.04 |
---|---|
axios로 서버에 요청할 때 생기는 에러 처리 방법 (2) | 2020.06.30 |
async 함수와 await에 관한 팁 (0) | 2020.04.29 |
Promise 이해하기 (0) | 2020.04.28 |
fetch를 이용해 서버의 데이터를 가져오는 방법 (0) | 2020.04.09 |