Я работаю с моделью Swift Cardholder
, которая инициализируется на основе ответа API, и пытаюсь выяснить, что происходит, если определенные поля в ответе null
.Вот (упрощенное) extension
модели 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
, и я обнаружил, что отладчик переходит прямо к концу метода init
после строки firstName =
:

Это происходит, если я нажимаю кнопки «Step Over» или «Step In».
Из того, что я понимаю, https://docs.swift.org/swift-book/LanguageGuide/ErrorHandling.html, этот метод init
бросающая функция, которая распространяет ошибки, которые выбрасываются внутри нее, в область, из которой она вызывается.Как мне добраться до этой области, чтобы выяснить, каковы конечные последствия этой ошибки?