swift 原生decode 错误捕获方式

 do {
           let value =  try decode(type, forKey: key)
           return value
        }catch let DecodingError.dataCorrupted(context){
            print("数据解析错误类型 1:====>\n错误描述:",context.debugDescription)
        }catch let DecodingError.keyNotFound(key, context){
            print("数据解析错误类型 2:====>\n键===>"
                  ,key.stringValue,"找不到,\n错误描述:",context.debugDescription
                  ,"\n路径==>",context.codingPath)
        }catch let DecodingError.valueNotFound(value, context){
            print("数据解析错误类型 3:====>\n值===>"
                  ,value,"找不到,\n错误描述:",context.debugDescription
                  ,"\n路径==>",context.codingPath)
        }catch let DecodingError.typeMismatch(type, context)  {
            print("数据解析错误类型 4:====>\n类型===>"
                  ,type,"不匹配,\n错误描述:",context.debugDescription
                  ,"\n路径==>",context.codingPath)
             //这里的路径是 从上到下 到最后一个 不匹配的值  data=>everyDay0630Map=>subjectDetail=>applePrice
        }catch {
            print("其他错误===>\n")
        }

你可能感兴趣的:(swift 原生decode 错误捕获方式)