• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

"안전한 합성에 대해" 강의 관련해서 질문드립니다

21.02.15 01:14 작성 조회수 137

0

먼저, 덕분에 함수형 프로그래밍에 조금씩 친숙해지고 있어서 너무 감사합니다.

다름 아니라, "안전한 합성에 대해" 강의 관련해서 궁금한 점이 있어서 질문드립니다~

"안전한 합성에 대해" 강의에서 에러가 터지지 않게 배열로 만들어 안전하게 합성한다고 하셨고

예전 feConf에서 유인동님의 "ES6+ 비동기 프로그래밍과 실전 에러 핸들링" 영상에서는 에러를 뿜어내는게 좋다고 말씀하셨는데,

에러를 뿜는게 좋으면, map을 이용해서 만드는 의미가 어떤게 있나 라는 궁금증이 들더라구요.

어떤 맥락에서는 에러를 뿜는게 좋고, 어떤 맥락에서는 map을 이용해서 에러를 뿜지 않는게 좋은지 궁금합니다.  

답변 1

답변을 작성해보세요.

5

던져야하는 에러는 예상못할 예외 상황으로 url 이 문자열로 정상적이나 접근시 404 라던지 일반적으로 일어나지 않으면서 예측하기 어려운 상황들이 에러로 제어하는 것이 좋습니다.

데이터베이스에 접근을 실패하거나 저장을 실패한 경우 같은 상황도 에러인게 좋습니다.

그외 if 로 체크하는 로직 같은 부분은 length가 하나 이하인 배열을 이용하여 안전하게 다루는 것이 용이합니다. 

옵셔널 체이닝을 사용하는 이유도 같은 맥락이라고 생각합니다. 에러를 낼 필요 없는거죠. 

이런 경우도 판단 근거가 될 수 있을 것 같은데 같은 함수 혹은 api 의 실패의 종류가 2개 이상일때도 에러인게 낫습니다. 유니크한 키여서 저장이 실패일수도 형이 안맞아서 저장이 실패일수도 커넥션이 끊겨서 실패일수도 있는 경우처럼요.

있거나 없거나 정도의 옵셔널 체이닝, 있을때만 해라와 같은 건 에러보다는 안전하게 다루는 형태가 좋다고 생각합니다 :)