我在项目中第一次使用rhino ETL,我非常喜欢 对其能力印象深刻。我使用连接操作来匹配两个 数据源。
有时可能会丢失数据,所以我将LeftOrphanRow覆盖为 “记录”错误。所以我虽然会抛出异常,然后在 该过程的结束使用收集所有发生的异常 GetAllErrors()。
但是看起来这个过程正在被第一个例外中止。 这是故意的吗?什么是最好的处理方式 OrphanRows(特别是当我想在过程结束时为所有操作提供所有孤立行的摘要时)?
答案 0 :(得分:0)
在我看来,问题在于您尝试使用例外来报告非例外事件。这并不是什么异常,当然,当您期望异常通过第三方库时,您不应该依赖该库以任何特定方式处理该异常。
你能不能在某个地方保留一个孤儿行列表,例如全局,并在您在任何联接操作中遇到一个时添加到它?然后在EtlProcess完成后,只需打印出列表。您也可以考虑使用log4net来完成此任务。或者甚至简单地举办一个活动,你在其他地方订阅并做任何合适的事情。