Swift/エラーをスローするよりResult型を使う方がエラーの型が明確のため、利用側から見た透明性が高いかもしれない
/icons/hr.icon
code:swift
extension HKHealthStore {
@available(iOS 15.0, watchOS 8.0, macOS 13.0, *)
public func requestAuthorization(toShare typesToShare: Set<HKSampleType>, read typesToRead: Set<HKObjectType>) async throws
}
上記のようなI/Fがある場合に、このthrowsは何をスローするのかが分からないのでエラーハンドリングの透明性が低いと感じた。Result型だったら Result<Value, Error> のようにエラーの型が明確なので良いなと思った。
とはいえ、throwするメソッドを見に行けばいい話だが、Resultは一発でErrorの型が分かるので違いはあるよね、ということを言いたかった。
2023/10/12 (木)
型付きのthrowが出来そう