EIF 2: First Project (2) - try, catch ์—๋Ÿฌ

try, catch ๊ตฌ๋ฌธ

ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๋„์›€ ์š”์ฒญ์ด ์™”์—ˆ์Šต๋‹ˆ๋‹ค.

๋น„๋™๊ธฐ ์š”์ฒญ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™์ด ์•ˆ ๋˜์–ด์„œ ์–ด๋–ป๊ฒŒ ๊ณ ์น˜๋ฉด ๋ ์ง€์— ๊ด€ํ•œ ๊ฒƒ์ด์—ˆ๋Š”๋ฐ์š”.

์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋กœ ๋˜์–ด์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

try {
      if (!(email !== "" && password !== "")) {
        setEmailErrorMessage("์ด๋ฉ”์ผ์„ ์ž…๋ ฅํ•˜์„ธ์š”");
        setPasswordErrorMessage("๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”");
      } else if (!EmailValidation(email)) {
        setEmailErrorMessage("์ด๋ฉ”์ผ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.");
      } else {
        // ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ†ต๊ณผ ํ›„ ๋กœ๊ทธ์ธ ์š”์ฒญ
        axios
          .post("http://localhost:4000/auth/login", loginState, {
            withCredentials: true,
          }) //์„œ๋ฒ„์— ์•„์ด๋””์™€ ๋น„๋ฒˆ ๋ณด๋‚ด๊ธฐ
          .then((res) => {
            const accessToken = getToken(); //Local Storage์— ์ €์žฅ๋œ ํ† ํฐ accessToken์— ํ• ๋‹น
            dispatch(handleLogin(accessToken)); //store state์— accessToken ์ €์žฅ
            isAuthenticated();
          });
      }
    } catch (err) {
      setEmailErrorMessage("์•„์ด๋”” ๋˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ž˜๋ชป ์ž…๋ ฅ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค");
      setPasswordErrorMessage("์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ •ํ™•ํžˆ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”");
    }

try์™€ catch ๋ธ”๋Ÿญ์œผ๋กœ ๋‚˜๋ˆ„๊ณ , try ๋ถ€๋ถ„์— axios๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ถ€๋ถ„์ ์œผ๋กœ ๋น„๋™๊ธฐ ์š”์ฒญ์„ ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ 

์ด๋ ‡๊ฒŒ ํ‘œํ˜„ํ•˜๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์ด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ „์ฒด ์‹คํ–‰์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์„ ๋•Œ "์•„์ด๋”” ๋˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ž˜๋ชป ์ž…๋ ฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"๊ฐ€ ๋– ์•ผ ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ,

์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ธ ํ›„ ๋ฐ›์•„์˜จ ๊ฒฐ๊ณผ์—์„œ ์—๋Ÿฌ๊ฐ€ ์žˆ์„ ๋•Œ ์ € ๋ฌธ๊ตฌ๊ฐ€ ๋– ์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด try catch block์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , axios ์•ˆ์— catch๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ตฌ์กฐ๋กœ ๋ฐ”๊ฟ”์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

if (!(email !== "" && password !== "")) {
      setEmailErrorMessage("์ด๋ฉ”์ผ์„ ์ž…๋ ฅํ•˜์„ธ์š”");
      setPasswordErrorMessage("๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”");
    } else if (!EmailValidation(email)) {
      setEmailErrorMessage("์ด๋ฉ”์ผ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.");
    } else {
      // ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ†ต๊ณผ ํ›„ ๋กœ๊ทธ์ธ ์š”์ฒญ
      axios
        .post("http://localhost:4000/auth/login", loginState, {
          headers: {
            Authorization: getToken(),
          },
        })
        .then((response) => {
          console.log("response", response.data);
          const accessToken = getToken(); //Local Storage์— ์ €์žฅ๋œ ํ† ํฐ accessToken์— ํ• ๋‹น
          dispatch(handleLogin(accessToken)); //store state์— accessToken ์ €์žฅ
          isAuthenticated();
        })
        .catch((error) => {
          console.log("error", error.response);
          setEmailErrorMessage("์•„์ด๋”” ๋˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ž˜๋ชป ์ž…๋ ฅ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค");
          setPasswordErrorMessage("์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ •ํ™•ํžˆ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”");
        });
    }

 

๊ทธ๋ ‡๊ฒŒ ๋ฐ”๊พธ๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์ด ์–ด๋–ค ์—๋Ÿฌ์ธ์ง€๊ฐ€ ์ž˜ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

'EIF' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

C์–ธ์–ด - Runtime Error: Segmentation fault  (0) 2022.01.03
EIF 3: ERR_HTTP_HEADERS_SENT  (0) 2021.12.05
EIF 1: First Project (1) - AWS ๋ฐฐํฌ ๋ฐ Cloudfront Cache ์‚ญ์ œ  (0) 2021.11.22