Какие ошибки могут возникнуть при кодировании с помощью 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.