Какие ошибки могут возникнуть при кодировании с помощью Swift JSONEncoder

JSONEncoder метод func encode<T>(_ value: T) throws -> Data where T : Encodable является бросаемым.

Мне интересно, почему это бросаемо: если значение для кодирования не соответствует Encodable, он не должен проходить компилятор, поэтому он не должен иметь ошибок во время выполнения.

1 ответ

Решение

От JSONEncoder исходный код:

/// - throws: `EncodingError.invalidValue` if a non-conforming floating-point value is encountered during encoding, and the encoding strategy is `.throw`.
/// - throws: An error if any value throws an error during encoding.


Описание отладки для всех ошибок:

Верхний уровень (T.self) не кодировал никаких значений.

Верхний уровень (T.self), закодированный как нулевой фрагмент JSON.

Верхний уровень (T.self) закодирован как номер JSON-фрагмента.

Верхний уровень (T.self) закодирован как строковый фрагмент JSON.

Другие вопросы по тегам