审查生成的订单导入器

来自 错误处理
Swift 6.3.3 高级 6分钟 找出 4处问题

根据事务与数据处理契约审查这段生成的订单导入代码。

以原子方式导入 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)
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误