0

我正在使用脚本组件作为转换处理一个参差不齐的分号分隔文件。

该组件能够处理数据并加载到 oledb 目的地。但是当发现错误时,它应该停止进一步处理。当我使用 try catch 块时,组件不会失败并继续处理到最后。

有什么办法可以在不使组件/包失败的情况下进一步停止处理?

让我知道是否需要任何其他信息/详细信息?

示例代码:

str.split(";");

if(column[0] == "H")
{
col1=Column[3];
}

if(column[0] != "T")
{
try
{
Row.col1=Column[0];
Row.col2=Column[1];
.....
}
catch
{
update the variable to check if we have error in file.
}
}

感谢您的时间。

4

2 回答 2

0

一般的想法是您希望使用 try/catch 块来确保数据处理本身不会中止。一旦你知道你的脚本没有向引擎报告失败,这是一个简单的过程,调用AddRow()

伪代码

foreach(line in fileReader)
{
    try
    {
        // perform dangerous operations here
        // Only add row if you have been able to parse current line
        Output0Buffer.AddRow();
        Output0Buffer.Col1 = parsedContent;
    }
    catch
    {
        // Signal that we should break out of the loop
        // do not propagate the error
        // You might want to do something though so you know you 
        // have an incomplete load
        break;
    }

}

如果您只想跳过当前的坏行,则可以替换continue上述内容break

C# 循环 - 中断与继续

于 2013-09-26T19:49:48.167 回答
0

我没有从任何地方得到任何帮助,但作为一种解决方法,我在代码中放置了一个 return 语句。它检查错误变量是否为真,然后我将返回而不进行进一步处理。但问题仍然是它处理整个文件:(。但它有效!!!

于 2013-10-05T18:00:45.240 回答