🕊

[Swift] Computed Property でも例外を throw できる件

2022/02/05に公開

サンプルコード

  • Swift: 5.5.2

適当にサンプルコードを書いてみました。

enum HogeError: Error {
    case zeroError
}

var moge: Int = 0

var hoge: Int {
    get throws {
        guard moge != 0 else {
            throw HogeError.zeroError
        }
        return moge
    }
}

アクセスする際は try をつける以外は、いつも通りの要領です。

moge = 1
do {
    print("hoge: \(try hoge)") // hoge: 1
} catch {
    print("error: \(error)")
}

moge = 0
do {
    print("hoge: \(try hoge)")
} catch {
    print("error: \(error)") // error: zeroError
}

以上になります。

GitHubで編集を提案

Discussion