我正在使用脚本组件作为转换来处理分号不明的分号文件。
组件能够处理数据并加载到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.
}
}
感谢您的时间。
答案 0 :(得分: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
。
答案 1 :(得分:0)
我没有从任何地方得到任何帮助,但作为一种解决方法,我在代码中放置了一个return语句。它检查错误变量是否为真然后我将返回而不进一步处理。但事情仍然是它处理整个文件:(。但它的工作原理!!!