제품 코드가 잘못된 형식이거나 고객 이름이 너무 길거나 주소 검증 서비스가 오랫동안 응답하지 않아서 실패한다면?
→ 어떤 시스템에서도 오류는 발생하기 마련이며 이를 어떻게 처리하는지가 중요함
→ 실부하를 받는 시스템은 반드시 일관되고 투명하게 오류를 처리해야 함
함수형 프로그래밍은 가능한 모든 것을 명확하게 드러내는 것을 중요하게 생각하는데, 오류 처리도 마찬가지
이전 장에서는 예외를 발생시켜 오류를 처리함.
→ 이는 간편하지만 모든 함수 시그니처와 실제 동작이 다른 문제가 생김
다음은 주소를 검증하는 함수의 시그니처를 나타낸 것
type CheckAddressExists = (i: UnvalidatedAddress) => CheckAddress;