gpt4 book ai didi

swift - 在 Swift 中哪些类型可以用作错误?

转载 作者:搜寻专家 更新时间:2023-10-31 22:04:17 24 4
gpt4 key购买 nike

我知道 Enum 的用法如下,Array 或 Dictionary 呢?

enum VendingMachineError: Error {
case invalidSelection
case insufficientFunds(coinsNeeded: Int)
case outOfStock
}

throw VendingMachineError.insufficientFunds(coinsNeeded: 5)

最佳答案

可以使用

任何符合Error 协议(protocol)的类型。如果你真的想要抛出一个数组然后声明符合协议(protocol)就足够了:

extension Array: Error {}

do {
throw [1, 2, 3]
} catch {
print("Failed:", error) // Failed: [1, 2, 3]
}

这是一个更现实的例子,使用一个struct来抛出带有附加信息的错误(来自的简化示例 Swift 3 errors with additional data ):

struct ParserError: Error, LocalizedError {
let line: Int

public var errorDescription: String? {
return "Parser error at line \(line)"
}
}

func parse() throws {
throw ParserError(line: 13)
}

do {
try parse()
} catch let error {
print(error.localizedDescription)
}

输出:

Parser error at line 13

关于swift - 在 Swift 中哪些类型可以用作错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52622479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com