You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:09:59