影刀RPA新手教程:TryCatch异常处理完全指南——如果出错了怎么办,怎么不让流程停掉
你有没有备用方案?
比如:你要去一个地方,平时坐地铁。
但有一天,地铁突然故障了。
你怎么办?
你不会站在地铁站一直等吧?
你会换一个方式:改坐公交车,或者打车。
这就是"异常处理"——如果原来的计划出错了,就执行备用方案,而不是一直卡在那里。
影刀RPA里的TryCatch,就是你给流程准备的"备用方案"。
生活中的异常处理

我们生活中经常会遇到"Plan A行不通,就用Plan B"的情况。
比如:你想打电话给朋友,但对方占线(Plan A失败)。
你就改发微信(Plan B)。
比如:你要上网,但家里WiFi断了(Plan A失败)。
你就改用自己的手机流量(Plan B)。
异常处理就是——如果出错了,不要停在那里,换个方式继续。
影刀里的TryCatch在哪儿
打开影刀RPA,新建一个流程。
在左侧的指令列表里,找到"异常处理"这个分类。
点开它,你能看到TryCatch(尝试-捕获)这个指令。
把它拖到中间的流程编辑区。

怎么用TryCatch
假设你想打开一个网页。
但如果网页打不开(出错),你就等3秒,再试一次。
第一步:拖一个TryCatch指令到流程里。
TryCatch指令里面,有两个部分:
- Try(尝试):放你本来想做的事。
- Catch(捕获):放如果出错了,要做的备用方案。
第二步:在Try的部分,添加"打开网页"指令。
- 网址:填你要打开的网页地址。
拼多多店群自动化报活动上架!
第三步:在Catch的部分,添加以下指令:
- "打印日志"指令:内容
"打开网页失败,3秒后重试" - "等待"指令:等待3秒。
- "打开网页"指令:再试一次(和Try部分一样)。

第四步:运行流程。
如果网页能打开,流程就正常继续。
如果网页打不开(出错),流程会立刻跳到Catch部分,执行备用方案(等3秒,再试一次)。
我当时踩过这个坑
我第一次用TryCatch的时候,以为Catch部分会自动重试Try部分。
结果出错了,Catch部分执行完就结束了,没有重新去试Try部分。
后来我才知道,TryCatch不是"自动重试",而是"出错时执行另一段代码"。
如果你想"出错后重试",你需要在Catch部分手动加一个"跳转到"指令,跳回Try部分。
或者,把整个TryCatch放在一个While循环里面,用一个小技巧:只有出错了才进Catch,成功了就跳出循环。
还有一次,我把太多指令都放在了Try部分。
结果一出错,我就分不清到底是哪一条指令出错了。
后来我才知道,Try部分应该只放"有可能会出错"的那一条或几条指令。

不要什么都往Try里放。
这个坑我踩过,你别踩了。
12大核心模块之——变量操作
TryCatch里面,你可以用一个变量来记录"是不是出错了"。
比如:在Try部分,如果成功了,就把status设为"成功"。
在Catch部分,把status设为"失败"。
这样,后面你就可以根据status的值,决定要不要继续执行。
12大核心模块之——指令参数配置
TryCatch指令的参数:
- 捕获异常类型:要选择你想捕获的异常类型(比如"网络错误"、"元素未找到"等)。
如果你不确定,可以选"所有异常"。

但这样可能会把一些你不想忽略的错误也捕获了。
12大核心模块之——网页元素捕获
TryCatch经常用来处理"网页元素找不到"的情况。
比如:你要点击一个按钮,但这个按钮有时候加载得快,有时候加载得慢。
你把"点击元素"指令放在Try部分。
如果按钮没加载出来(出错),就在Catch部分加一个"等待"指令,等2秒,然后跳回Try部分重试。
12大核心模块之——XPath和CSS选择器
有时候,网页的元素会变(比如id会变,class会变)。
你用原来的XPath找不到了,就出错了。
这时候,你可以在Catch部分,换一个XPath再试一次。
比如:Try部分用XPath1,Catch部分用XPath2。

12大核心模块之——Python脚本
TryCatch的逻辑,也可以用Python写。
try:
# 尝试做的事
print("尝试打开网页")
except Exception as e:
# 出错了,执行备用方案
print(f"出错了:{e}")
print("3秒后重试")
try:后面放Plan A。
except:后面放Plan B。
12大核心模块之——Excel操作
TryCatch也可以用来处理Excel文件被占用的情况。
比如:你要读取一个Excel文件,但这个文件正好被别人打开了。
你把"读取Excel"指令放在Try部分。
如果出错(文件被占用),就在Catch部分等5秒,然后重试。
12大核心模块之——数据库操作

如果你要连接数据库,但数据库有时候会连不上。
用TryCatch。
在Try部分尝试连接。
如果出错,在Catch部分等一会儿,然后重试。
12大核心模块之——文件操作
如果你要读取一个文件,但这个文件有时候会被别的程序占用。
用TryCatch。
12大核心模块之——邮件操作
如果你要发送邮件,但网络有时候会不稳定。
用TryCatch。
TEMU店群矩阵自动化运营核价报活动
在Try部分尝试发送。
如果出错,在Catch部分等一会儿,然后重试。
12大核心模块之——流程控制
TryCatch可以和前面学的If判断、各种循环配合使用。
比如:在一个For循环里面,每一次循环都可能出错。
你把循环体放在TryCatch里面。
这样,某一次循环出错了,不会影响整个循环,只是这一次跳过,继续下一次。
12大核心模块之——调试技巧
写完TryCatch,一定要测试。
你可以故意让流程出错(比如把网址改成打不开的),看看是不是会执行Catch部分。
如果Catch部分没有执行,说明你的异常类型没选对,或者异常没有被触发。
一个完整的例子

我来写一个完整的例子,你可以照着做。
目标:打开一个网页,如果打不开(出错),就等3秒再试一次。
步骤:
- 新建流程,取名"打开网页带重试"。
- 添加一个"设置变量"指令:
- 变量名:
retry_count - 变量值:
0(记录已经重试了几次)
- 变量名:
- 拖一个While条件循环指令到流程里:
- 条件:
retry_count < 3(最多重试3次)
- 条件:
- 在While循环的循环体里,拖一个TryCatch指令。
- 在Try部分,添加"打开网页"指令:
- 网址:
"https://www.example.com"
- 网址:
- 在Try部分的"打开网页"之后,添加"跳出循环"指令(成功了就跳出While循环)。
- 在Catch部分,添加:
- "打印日志"指令:
"打开失败,重试次数:" + retry_count - "等待"指令:等待3秒。
- 设置变量指令:把
retry_count加1。
- "打印日志"指令:
- 运行,观察如果网页打不开,是不是会重试。
XPath示例(如果你要在Catch里换一个元素找):
//button[@id='submit-btn'] (Try部分用这个)
//button[contains(text(),'提交')] (Catch部分换这个)
Python代码示例:
import time
retry_count = 0
while retry_count < 3:
try:
print("尝试打开网页...")
# 这里是打开网页的代码
break # 成功了就跳出循环
except Exception as e:
print(f"出错了:{e}")
retry_count += 1
time.sleep(3)
配置参数示例(TryCatch指令的参数):
捕获异常类型:所有异常
小结

TryCatch就是:如果出错了怎么办,怎么不让流程停掉。
生活中的备用方案、Plan B,都是异常处理。
影刀里的TryCatch,用来让流程更健壮,遇到错误不会直接停掉。
记住:TryCatch不是自动重试,你需要在Catch部分手动写重试的逻辑。
Try部分只放"可能会出错"的指令,不要什么都往里放。
多测试,故意让流程出错,看看是不是会执行Catch部分。
home.linyan.cloud
内容标签:影刀RPA 新手教程 TryCatch 异常处理 流程控制 零基础
作者:林焱
136




被折叠的 条评论
为什么被折叠?



