try/catch에 대해 알아보자.
try/catch는 대부분 exception이 발생했을때 catch로 exception을 핸들링 하기위해 사용할 것이다.
이번에 try/catch를 사용하다가 여태 잘못 알고있던 것을 얘기해본다.
function getUser(id) {
if (id !== 1) {
throw `Not found user: ${id}`;
}
return {
id: 1,
name: `joriter`,
};
}
try {
getUser(2);
} catch (error) {
console.log(error);
}
대부분 이렇게 try에 발생하는 exception을 보기위해 catch를 많이 사용했다.
이렇게 사용했던 이유는 exception을 잡으면 거기서 실행을 멈춘다고 생각하고 있었기 때문이다.
하지만 이번에 알아낸 것은 exception을 발생하고 catch를 하면 실행을 멈추지 않고, exception을 핸들링하고 코드를 계속 이어서 실행가능하다는 것이다.
function getUser(id) {
if (id !== 1) {
throw `Not found user: ${id}`;
}
return {
id: 1,
name: `joriter`,
};
}
try {
let user = getUser(2);
} catch (error) {
console.log(error); // Not found user: 2
user = getUser(1);
}
console.log(user); // { id: 1, name: 'joriter' }
다시 catch 블럭을 보면 user에 getUser(1)을 받고 있다.
그래서 마지막에 user를 console을 찍어보면 getUser의 return 값을 잘 받고 있는 것을 알 수 있다.
이렇게 catch 블럭에서 코드가 죽지 않고 계속 살아서 동작한다는 것을 알게 되었다.
마치며
회사에서 스터디를 하면서 catch의 역할을 다시 알게 되었다.
대부분 try/catch를 사용했을때, try에서 발생하는 exception을 보기위해 catch를 많이 사용했다.
하지만 그 방법이 프로그램을 죽이 않고 계속 살아가게 하는 방법이었고, 나도 모르게 계속 사용하고 있었다.
이것으로 알고 있어서 사용하고 있는 것이 아닌 외워서 사용하고 있다고 지적을 받았다.
이로인해 아직 알아야 할 것이 많고 당연하게 생각하고 있던 것들을 다시 돌아봐야겠다는 생각이 들었다.
무의식적으로 사용하는 것이 과연 내가 알고 사용하는 것일까, 외워서 사용하는 것일까 생각해보자.
'TIL > 잡학다식' 카테고리의 다른 글
[잡학다식] Giver & Taker (0) | 2023.03.25 |
---|---|
[잡학다식] NestJS - 프로젝트 만들기 (0) | 2022.09.07 |
[잡학다식] Postman - Environment (0) | 2022.08.30 |
[잡학다식] git repo 합치기(feat. commit) (0) | 2022.08.28 |
[잡학다식] RESTful API - REST API (0) | 2022.08.04 |