我想设置ErrorMode = ErrorMode.SaveAndContinue
,以便在写入CSV文件后处理错误。
如何在调用WriteStream()
时人为地生成行级错误,以便我可以测试我的错误处理?
特别是我想知道如果行错误,是否会触发AfterWriteRecord
事件。
答案 0 :(得分:1)
查看源代码有几种方法:
您使用WriteStream()
致电IEnumerable<T>
,其中T
是您的FileHelpers记录类。因此,在您的测试中,创建一个List<T>
,但作为其中一个记录添加null。这会导致WriteStream()
提出BadUsageException
。
或者,您可以添加一个OnProgress
事件,在该事件中抛出异常。
您还可以从BeforeWriteEvent
或AfterWriteEvent
中抛出异常。
您可以附加custom field converter,在FieldToString()
覆盖中引发异常。
上述任何异常都将被SaveAndContinue
选项所困。