6기 기준으로 우테코 프리코스 미션 1에서 필요한 개념을 정리해 보았어요 :)
컴퓨터가 일을 할 때에도 실수가 생길 수 있어요.
예를 들어, 친구에게 오늘 점심 메뉴로 짜장면, 짬뽕을 시킬 건데 너는 무엇을 먹을래? 라고 물어보았는데 "노래방"이라고 답하면 이상한 것 처럼 보여요. 두 메뉴 중에 선택하는 것을 물어보았는데 "노래방"이라고 말을 하면 의사 소통에 문제가 생겨요.
프로그래밍에서는 이런 문제를 오류 라고 불러요.
그런데 이런 오류가 생겼을 때, 컴퓨터가 멈추지 않고 문제를 해결하는 방법이 있어요.
그게 바로 try-catch 와 throw 입니다.
1. try-catch는 문제를 잡는 "안정망"이야!
컴퓨터가 일을 하다가 오류가 생기면, 그 오류를 잡아내서 멈추지 않도록 도와줘야 돼요.
> try {
// 여기서 컴퓨터가 일을 해요
let lunchMenu = parseInt("노래방"); // '노래방'을 점심 메뉴로 먹는다고 해요!
} catch (error) {
// 오류가 생기면 여기로 와서 문제를 해결해요
console.log("오류가 생겼어요! 컴퓨터가 멈추지 않게 도와줄게요.");
}
위 코드에서는 "노래방"을 점심 메뉴로 먹으려고 하니 오류가 생긴거예요.
그럼 catch가 그 오류를 잡아서 처리하고, 프로그램이 멈추지 않게 도와줍니다.
2. throw는 "문제를 던지기"야!
때로는 컴퓨터가 미리 문제가 생길 것을 알 수 있어요. 이때는 스스로 오류를 던져서, "이 부분은 오류라!"라고 알려주는 거예요. 마치 아이가 아스팔트에서 신나게 뛰어다니고 있는데 넘어지지 않도록 미리 경고하는 것과 비슷해요.
try {
let chosenDish = "노래방"; // "짜장면" 또는 "짬뽕"을 선택한다고 생각해요!
if (chosenDish !== "짜장면" && chosenDish !== "짬뽕") { // 선택한 것이 짜장면도 짬뽕도 아닌 경우!
throw new Error(chosenDish + "은(는) 메뉴에 없습니다!"); // 여기서 오류를 던져요
}
} catch (error) {
console.log("오류가 생겼어요: " + error.message); // 던진 오류를 잡아서 처리해요
}
위 코드에서는 "노래방"이 점심 메뉴가 아니라는 것을 알아차리라, throw 로 오류를 던져요. 그러면 catch가 그 오류를 잡아서 해결해줘요.
try는 컴퓨터가 일을 시도해 보는 곳!
catch는 오류가 생기면 문제를 잡아주는 곳!
throw는 컴퓨터가 스스로 "문제가 생겼어!"라고 알려주는 방법!
이렇게 하면, 오류가 생기더라도 프로그램이 안전하게 실행될 수 있어요!