In CsvHelper how to catch a conversion error and know what field and what row it happened in?

后端 未结 3 720
不思量自难忘°
不思量自难忘° 2021-01-01 10:02

I am using the class CsvReader successfully and am happy with it, however, the file that I consume is being produced by a group which changes column formats wit

3条回答
  •  情书的邮戳
    2021-01-01 10:22

    CsvHelper has public 'Context' field in the CsvReader and there are all what needed for display a problem:

    try
    {
        var records = csvReader.GetRecords().ToList();
    }
    catch (CsvHelperException e)
    {
        Console.WriteLine($"{e.Message} " + (e.InnerException == null ? string.Empty : e.InnerException.Message));
        Console.WriteLine($"Row: {csvReader.Context.Row}; RawLine: {csvReader.Context.RawRecord}");
        if (csvReader.Context.CurrentIndex >= 0 &&
            csvReader.Context.CurrentIndex < csvReader.Context.HeaderRecord.Length)
        {
            Console.WriteLine($"Column: {csvReader.Context.CurrentIndex}; ColumnName: {csvReader.Context.HeaderRecord[csvReader.Context.CurrentIndex]}");
        }
        throw;
    }
    

提交回复
热议问题