ThrowingFunction을 adapter로 감싸 성공과 실패를 모두 보존한다.
operation.apply를 실행한다.
Success에 결과를 넣는다.
Failure에 type과 message를 넣는다.
정책에 따라 수집 또는 중단한다.
핵심: Error까지 잡지 말고 복구 책임이 있는 실패만 다룬다.