gpt4 book ai didi

Swift 2.0 错误处理

转载 作者:搜寻专家 更新时间:2023-11-01 06:08:06 25 4
gpt4 key购买 nike

我的代码如下。

enum NutritionalError: ErrorType {
case NotEnoughNutrients
case TooMuchNutrients
case Other
}

如您所见,我有一个 ErrorType 的 NutritionalError,包含三种不同的情况。

我有一个这样运行的错误处理函数。

func needs(fat: Double, carbohydrate: Double, protein: Double) throws {
let totalPercent = fat + carbohydrate + protein

guard totalPercent > 1 else {
throw NutritionalError.TooMuchNutrients
}

guard totalPercent < 1 else {
throw NutritionalError.NotEnoughNutrients
}
}

func calculateNeeds(calories: Int, fatPercent: Double, carbohydratePercent: Double, proteinPercent: Double) -> (Int, Int, Int) {
do {
try needs(fatPercent, carbohydrate: carbohydratePercent, protein: proteinPercent)
} catch NutritionalError.NotEnoughNutrients {
print("Not enought nutrients.")
} catch NutritionalError.TooMuchNutrients {
print("Too many nutrients.")
}
}

在线。

            try needs(fatPercent, carbohydrate: carbohydratePercent, protein: proteinPercent)

我得到一个错误。

'Errors thrown from here are not handled because the enclosing catch is not exhaustive'

最佳答案

与错误状态一样,您需要添加一个没有约束的最终 catch

关于Swift 2.0 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32259910/

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