我CsvReader成功地使用了这个类并且对它很满意,但是,我使用的文件是由一个更改列格式而不让我知道的组生成的.
所以,有一瞬间一切正常,然后第二天早上事情中断并且try catch块会csv.GetRecord<MyType>()捕获错误并记录错误,但是我无法从Exception实例中收集任何有价值的信息.它只是说:"无法进行转换." 与InnerException无关.不是很有用.我甚至不知道我的150列中的哪一列导致了问题.
你能帮我弄清楚如何确定哪一行导致问题的哪一列?
谢谢
Jos*_*ose 46
目前,无法忽略字段/属性级别的错误.您目前的选择是这些:
查看异常数据.
catch( Exception ex )
{
// This contains useful information about the error.
ex.Data["CsvHelper"];
}
Run Code Online (Sandbox Code Playgroud)
忽略读取异常.这是在行级别,但不是字段.它将允许仍然读取整个文件,并忽略不起作用的行.发生异常时,您可以获得回调.
csv.Configuration.IgnoreReadingExceptions = true;
csv.Configuration.ReadingExceptionCallback = ( ex, row ) =>
{
// Do something with the exception and row data.
// You can look at the exception data here too.
};
Run Code Online (Sandbox Code Playgroud)
首先,似乎我需要捕获CsvTypeConverterException.
while (csv.Read())
{
try
{
var record = csv.GetRecord<MyType>();
}
catch (CsvTypeConverterException ex)
{
//ex.Data.Values has more info...
}
}
Run Code Online (Sandbox Code Playgroud)
我现在知道如何调查出了什么问题,但是如何确保跳过该字段但是该行中的其余字段被转换,这样整个行都不会被丢弃?
谢谢
| 归档时间: |
|
| 查看次数: |
13828 次 |
| 最近记录: |