当CSVHelper抛出错误数据时,如何判断文件出问题了?

时间:2019-10-09 00:52:26

标签: csvhelper

我确信文件的一部分出现了问题,并且csvHelper抛出了BadDataFound。

但是我怎么知道问题出在哪里呢?使用一些在线csv解析器似乎可以很好地解析我的文件。

下面是我使用csvParser的方式

public ICollection<FileRecord> FromCsv(string csv)
{
    var csvWithHeader = CrowdinFileRecord.Scheme + Environment.NewLine + csv;
    using (var stream = new MemoryStream())
    using (var reader = new StreamReader(stream))
    using (var writer = new StreamWriter(stream))
    using (var csvReader = new CsvReader(reader))
    {
        csvReader.Configuration.HasHeaderRecord = true;
        csvReader.Configuration.RegisterClassMap<FileRecordMap>();
        writer.Write(csvWithHeader);
        writer.Flush();
        stream.Position = 0;
        return csvReader.GetRecords<FileRecord>().ToList();
    }
}

1 个答案:

答案 0 :(得分:2)

这至少可以使您更好地了解问题所在。

try
{
    return csvReader.GetRecords<FileRecord>().ToList();
}
catch (BadDataException ex)
{
    throw new Exception($"BadDataException at RawRow: {ex.ReadingContext.RawRow}, RawRecord: {ex.ReadingContext.RawRecord}", ex);
}