根据事务与数据处理契约审查这段生成的订单导入代码。
以原子方式导入 CSV 行:用有用的类别拒绝格式错误与金额无效的行;传播持久化失败;绝不记录完整客户数据行。
swift
enum ImportError: Error {
case malformedRow(Int)
case invalidAmount(Int)
}
struct ImportSummary { let imported: Int }
func importOrders(_ lines: [String]) throws -> ImportSummary {
var imported = 0
for (index, line) in lines.enumerated() {
do {
let fields = line.split(separator: ",")
let amount = try parseAmount(String(fields[1]))
try? saveOrder(email: String(fields[0]), amount: amount)
imported += 1
} catch {
print("bad row \(index): \(line), \(error)")
continue
}
}
return ImportSummary(imported: imported)
}
生成代码仅作示例,不代表任何特定模型