使用Swift JSONEncoder进行编码时会发生什么错误

时间:2017-07-28 05:42:29

标签: swift codable

JSONEncoder方法func encode<T>(_ value: T) throws -> Data where T : Encodable是可抛出的。

我想知道为什么它是可抛出的:如果要编码的值不符合Encodable,它不应该通过编译器,因此它应该在运行时不会发生错误。

1 个答案:

答案 0 :(得分:3)

来自JSONEncoder&#39; s source code

/// - 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片段。