gpt4 book ai didi

swift - 在 Swift 调试器中,如何查看异常被捕获的位置?

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

我正在使用基于 API 响应初始化的 Swift 模型 Cardholder,我试图弄清楚如果响应中的某些字段为 null< 会发生什么。这是 Cardholder 模型的(简化的)扩展,带有来自 Decoder 的初始化程序:

extension Cardholder: DictionaryDeserializable, DictionarySerializable {
private enum CodingKeys: String, CodingKey {
case id = "id"
case firstName = "first_name"
case lastName = "last_name"
case dateOfBirth = "date_of_birth"
}

public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
id = try container.decode(String.self, forKey: .id)
firstName = try container.decode(String.self, forKey: .firstName)
lastName = try container.decode(String.self, forKey: .lastName)
dateOfBirth = try container.decode(Date.self, forKey: .dateOfBirth)
}
}

对于我手动测试的 API 响应,first_name 字段是 null,我发现调试器直接走到最后firstName = 行之后的 init 方法:

Xcode debugger with current line of execution at end of init

如果我按下“Step Over”或“Step In”按钮,就会发生这种情况。

据我了解rom https://docs.swift.org/swift-book/LanguageGuide/ErrorHandling.html ,这个 init 方法是一个抛出函数,它将抛出的错误传播到调用它的范围。我如何到达那个范围来弄清楚这个错误的最终后果是什么?

最佳答案

在 Swift 中抛出错误也不异常(exception)。这只是一种奇特的返回。您可以像返回时一样加强调用堆栈。走出去;它是进入右侧的按钮。

关于swift - 在 Swift 调试器中,如何查看异常被捕获的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54873242/

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