流程跑到一半突然报错,弹窗关不掉,数据也没保存——这是最让人崩溃的情况。
我刚开始用影刀RPA做电商采集时,最怕的就是这个。后来才明白,异常处理不是可选项,是必选项。
这篇文章把影刀RPA的异常处理机制和报错排查方法一次讲透,都是我踩坑后总结的实操经验。
影刀RPA的Try-Catch-Finally指令怎么用
影刀RPA内置了Try-Catch-Finally指令,但很多人直接忽略它。
场景:任何可能出错的步骤,比如点击按钮、读取文件、请求网页。
方法:把可能出错的指令拖进Try块,Catch块处理错误,Finally块收尾。
具体操作:
- 在右侧指令面板搜索“Try”,拖入流程
2. 把可能出错的指令(比如“点击元素”)拖进Try块
- 点击Try指令下方的“添加Catch”按钮
- 在Catch块中拖入“输出日志”指令,记录报错信息
- 点击“添加Finally”,放入关闭弹窗、释放资源等操作
# 影刀Python指令中的异常处理示例

try:
# 可能出错的代码:读取Excel文件
df = pd.read_excel('商品数据.xlsx')
except FileNotFoundError as e:
# 捕获文件不存在错误
print(f"文件未找到:{e}")
# 在影刀中,这里可以调用“输出日志”指令

except Exception as e:
# 捕获其他所有异常
print(f"发生错误:{e}")
finally:
# 无论是否出错都执行,比如关闭文件
print("流程结束")
注意:社区版每天30分钟额度,如果异常导致流程卡死,额度会被白白耗尽。创业版无限制,但同样需要异常处理。
分模块异常处理:让报错定位更精准
整个流程只包一个Try,报错后根本不知道哪一步出了问题。
方法:按功能模块拆分子流程,每个子流程内部独立加Try-Catch。
操作步骤:
- 把流程拆成“登录”“采集”“保存”三个子流程
- 每个子流程内部单独加Try-Catch
- 子流程调用时,外层再包一层Try
这样采集子流程报错,不会影响保存已采集的数据。
错误截图与运行报告:事后排查的依据
流程半夜跑挂了,早上才发现,什么现场都没留下。
方法:Catch块加“截图”指令保存现场,加“发送邮件”指令通知自己。
具体操作:
- Catch块第一行加“截取屏幕”指令
- 设置保存路径为
D:\RPA错误截图\ - 加“发送邮件”指令,附件带上截图
- 日志中记录错误信息和时间戳
影刀RPA自带运行报告功能,社区版也支持。在流程结束后可以查看每个指令的执行状态。
防止流程卡死的三个设置
场景:流程卡在某个弹窗或等待上,一直不动。
方法:设置超时、最大重试次数、强制退出条件。
- 在“等待元素出现”指令中设置超时时间30秒
- 在“循环条件”中设置最大循环次数,比如100次
- 用“终止流程”指令配合条件判断,强制退出
| 设置项 | 推荐值 | 作用 |
|---|---|---|
| 等待超时 | 30秒 | 避免无限等待 |
| 最大循环 | 100次 | 防止死循环 |
| 重试次数 | 3次 | 避免无限重试 |
常见问题速查
Q:Catch块里还能再报错吗?
A:会。所以Catch块里的操作要尽量简单,只做日志和截图,不要放复杂逻辑。
Q:Finally块什么时候执行?
A:无论Try块是否报错,Finally块都会执行。适合放关闭浏览器、释放资源等操作。
Q:魔法指令能帮我写异常处理吗?
A:可以。影刀3.0的魔法指令支持对话式生成,你描述需求,它自动生成Try-Catch结构。但生成后要自己检查逻辑。
Q:社区版异常处理有功能限制吗?
A:没有。异常处理指令全版本通用。唯一限制是社区版30分钟/天。
推荐资源
- 影刀RPA官方学院有“异常处理”专题课,免费
- 影刀社区搜索“错误截图”,有现成子流程可下载
- 官方文档“Try-Catch-Finally”章节,有完整参数说明
#影刀RPA #RPA自动化 #异常处理 #报错排查 #流程设计
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
