В отладчике Swift, как я могу увидеть, где ловится исключение? - PullRequest
0 голосов
/ 25 февраля 2019

Я работаю с моделью 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 =:

Xcode debugger with current line of execution at end of init

Это происходит, если я нажимаю кнопки «Step Over» или «Step In».

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

1 Ответ

0 голосов
/ 25 февраля 2019

Выдача ошибки в Swift не является исключением.Это просто фантастическое возвращение.Вы можете увеличить количество вызовов, как и для возврата.Выйти;это кнопка справа от входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...