1

我是第一次在项目中使用 rhino ETL,它的功能给我留下了深刻的印象。我使用连接操作来匹配两个数据源。

有时可能会丢失数据,因此我覆盖 LeftOrphanRow 以“记录”错误。所以我虽然我会抛出一个异常,然后在进程结束时使用 GetAllErrors() 收集所有发生的异常。

但似乎该过程正在中止,第一个例外。这是故意的吗?处理 OrphanRows 的最佳方法是什么(特别是当我想在流程结束时汇总所有操作的所有孤立行时)?

4

1 回答 1

0

在我看来,问题在于您试图使用异常来报告非异常事件。这并不是异常的真正用途,当然,当您期望异常通过第三方库时,您不应该依赖该库以任何特定方式处理该异常。

您是否可以在某个地方(例如全局)保留一个孤立行列表,并在您在任何连接操作中遇到一个时添加到其中?然后在您的 EtlProcess 完成后,将列表打印出来。您也可以考虑使用 log4net 来完成此操作。或者甚至只是简单地提出一个事件,你在其他地方订阅并做任何看起来合适的事情。

于 2011-04-14T15:36:41.500 回答