Checked exception을 값으로 올리기

ThrowingFunction을 adapter로 감싸 성공과 실패를 모두 보존한다.

  1. 호출

    operation.apply를 실행한다.

  2. 성공

    Success에 결과를 넣는다.

  3. Exception

    Failure에 type과 message를 넣는다.

  4. Caller

    정책에 따라 수집 또는 중단한다.

핵심: Error까지 잡지 말고 복구 책임이 있는 실패만 다룬다.