UFT错误处理场景咨询:迭代遇错如何跳转至Excel下一行执行
处理UFT迭代中错误跳转下一行的方案
要实现「某行执行时第2条语句出错就跳过剩余语句,直接进入下一行执行第1条」的需求,我们可以借助VBScript的错误处理机制结合循环控制来实现。以下是具体的修改方案:
修改后的完整代码
' 初始化DataTable行数 Dim i, iRow iRow = DataTable.GetRowCount ' 开启错误捕获,让脚本遇到错误时不直接终止,继续执行后续代码 On Error Resume Next For i = 1 To iRow ' 显式切换到当前迭代行(确保DataTable行切换逻辑清晰) DataTable.SetCurrentRow(i) ' 清除上一次循环遗留的错误状态,避免干扰当前判断 Err.Clear() ' Statement 1 - 执行第一行语句 Browser("ABC").Page("ABC").WebEdit("ABC").Set DataTable("DT", dtGlobalSheet) ' (可选)如果Statement1执行出错也直接跳转到下一行,可根据需求删除此判断 If Err.Number <> 0 Then Continue For End If ' Statement 2 - 执行第二行语句(替换为你实际的完整语句) Browser("ABC").Page("ABC").WebEdit("AB...").Set "" ' 检查Statement2是否执行出错 If Err.Number <> 0 Then ' 出错后跳过当前行剩余所有语句,直接进入下一次循环 Continue For End If ' 这里可以添加后续的Statement3、Statement4等,只有前面无错误时才会执行 ' ...其他业务语句... Next ' (可选)关闭错误捕获,恢复脚本默认的错误终止行为 On Error GoTo 0
关键逻辑解释
- 错误捕获开启:
On Error Resume Next是核心,它让脚本在遇到错误时不会直接崩溃,而是允许我们手动处理错误并控制流程走向。 - 循环内错误重置:每次循环开始时用
Err.Clear()清空错误状态,保证当前行的错误判断不受上一次循环的影响。 - 错误判断与跳转:执行完Statement2后检查
Err.Number,如果不为0说明执行出错,用Continue For直接跳过当前循环的剩余代码,立刻进入下一行的迭代。 - 可选的错误日志:如果需要记录错误详情,可以在错误分支里添加上报逻辑,比如:
Reporter.ReportEvent micFail, "迭代出错", "第" & i & "行执行Statement2时出错:" & Err.Description
内容的提问来源于stack exchange,提问作者Devendra Dangi
相关产品推荐
相关产品推荐

