QnA 에러 핸들링 - ChoDragon9/posts GitHub Wiki

동기 상황에서 에러 핸들링은 어떻게 해야 하는지?

const f = list => list
  .map(a => a + 10)
  .filter(a => a % 2)
  .slice(0, 2)

함수에서 에러가 발생하는 경우는 두가지를 볼수 있다. list 인자가 배열이 아닐 때, map, filter에 사용된 함수들이 에러를 발생할 때이다.

전략에 따라 다르게 기술할 수 있지만 안전하게 값을 흘리게 하는 방법이 있다. 항상 같은 타입을 리턴하게 되게 하는 것이다.

const f = list => {
  try {
    return list
      .map(a => a + 10)
      .filter(a => a % 2)
      .slice(0, 2)
  } catch (e) {
    return []
  }
}