const handleSignUp = () => {
//try 전의 함수들
try {
const response = await axios.post(
"주소값",
body
);
} catch (error) {
if (axios.isAxiosError(error)) {
const axiosError = error as AxiosError;
if (axiosError.response) {
if (error.response?.data.code !== 200) {
return signUpErrorMessageStatus(error.response?.data.msg);
}
}
}
}
//try 후 실행될 함수들..
}
이렇게 함수를 짜고 실행을 시켰는데, 백에서 에러를 던질 때 catch로 가서 return을 시켜주는데 그 밑에 함수들이 //try 후 실행될 함수들..이 계속 실행되는 것이다. 알아보니..
catch블록 내에서return을 사용하면 해당catch블록에서의 함수 실행이 종료되고,return뒤의 코드는 실행되지 않습니다. 그러나catch블록 내에서의return은try블록 밖의 코드에서의return을 의미하지 않습니다. 즉,catch블록 내에서return을 호출하면 해당catch블록이 끝나고, 다음 코드 블록이나 함수의 실행이 계속됩니다.
따라서
catch블록 안에서return문을 실행하더라도, 해당catch블록이 끝난 후에는 다음 코드 블록이나 함수가 실행될 것입니다. 이러한 동작은catch블록 내에서 예외 처리 후에 정상적인 코드 실행을 지속할 수 있게 해줍니다.
catch()안에서의 함수를 return시킨다는 뜻이었고, 그 밖의 함수는 종료가 되지 않는다는 뜻이었다. 그래서 //try 후 실행될 함수들..을 try()안, await() 밑에 넣어서 안전하게 실행되게 하였다.