[오류리뷰]try/catch & return

Yunseok Choi·2024년 3월 27일

EARTH-IDE-N 프로젝트

목록 보기
2/9
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 블록 내에서의 returntry 블록 밖의 코드에서의 return을 의미하지 않습니다. 즉, catch 블록 내에서 return을 호출하면 해당 catch 블록이 끝나고, 다음 코드 블록이나 함수의 실행이 계속됩니다.

따라서 catch 블록 안에서 return 문을 실행하더라도, 해당 catch 블록이 끝난 후에는 다음 코드 블록이나 함수가 실행될 것입니다. 이러한 동작은 catch 블록 내에서 예외 처리 후에 정상적인 코드 실행을 지속할 수 있게 해줍니다.

catch()안에서의 함수를 return시킨다는 뜻이었고, 그 밖의 함수는 종료가 되지 않는다는 뜻이었다. 그래서 //try 후 실행될 함수들..try()안, await() 밑에 넣어서 안전하게 실행되게 하였다.

profile
이용자와 서비스를 하나로 만드는 개발자, Hermann입니다.

0개의 댓글