throw랑 return이 머가 다르길래

가은·2023년 8월 23일
0

프로젝트 API 변경 작업 하고 있었는데 궁금한 점이 생겼다.

catch문에서 throw랑 return은 무슨 차이일까?

보는데 어떤 곳은 throw로 쓰여있고 어떤 곳은 return이 쓰여있었다.

그리고 난 throw로 던져진 에러에서 데이터를 가져와야되는데... 이걸 어떻게 가져오지?!?!

throw를 return으로 받으니까 되더라구용?

그래서 알아봐야겠다 생각했단 말씀

catch 문 안에서 return

try-catch 문 안에서 return은 모든 블록을 거치고 정상 종료 한다는 의미이다.
→ finally가 있으면 finally 까지 거치고 종료한다는 것임

그렇기 때문에 try 문에서 response 데이터를 받는 것 처럼 catch문도 error 데이터를 받을 수 있어 그 안에 객체를 타고 타고 들어갈 수 있는 것이다!

error를 로그로 찍으면

이렇게 평소 보는 데이터 처럼 볼 수 있고 사용할 수 있다!

그럼 catch 문 안에서 throw는?

throw은 예외 상황이나 에러가 발생했음을 알려준다.
try문에서 발생한 오류에 대한 정보를 전달하기도 하지만, 개발자가 직접 사용자 정의 예외를 발생시킬 수도 있다!

그보다 나에게 중요했던건... throw는 예외가 발생하면 현재 함수 실행은 중지되고 제어 흐름이 catch 블록으로 간다는 점이였다...!!!

그래서 throw 이후 명령문들은 실행되지 않기 때문에 화면 상에서도 오류가 떴겠구나 싶었다 ㅜㅜ

이런 오류들 때매 엉뚱한 구글링만 백만개 했음ㅡㅡ!!

catch 블록이 없으면 프로그램이 그냥 종료되버린댄다 흑흑 매정해

아무튼 이번 기회에 아무 생각없이 catch 문에 썼던 키워드들을 알 수 있었당!

profile
일이 재밌게 진행 되겠는걸?

0개의 댓글