본문 바로가기

자바스크립트/비동기

자바스크립트의 try, catch

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와 에러 핸들링

https://ko.javascript.info/try-catch