import console;
// 定义通用重试函数
var retry = function(num,func,...){ // 重试次数、执行的函数名、参数
var args = {...};
import win;
for(i=1;num;1){
console.dump("第"++i++"次重试!")
var 结果,是否重试=null,true;
try{
结果 = func(..table.unpack(args));
}
catch(e){
if ..string.endWith(e,"{Error}:123") 是否重试=false;
}
if 结果 return 结果;
if i==num or !是否重试 return;
win.delay()
}
}
// 访问正常的情况
var t = retry(3,function(){
import inet.http
return inet.http().get("http://www.baidu.com")
}
)
console.dump(#t)
//访问失败的情况
var t = retry(3,function(){
import inet.http
return inet.http().get("http://光庆.baidu.com")
}
)
console.dump(t)
//访问异常,继续重试的情况
var t = retry(3,function(){
error("函数执行错误!") //抛出异常
}
)
console.dump(t)
//访问异常,自定义过滤这种情况,不再重试
var t = retry(3,function(){
error(123) // 抛出不再重试的异常(自定义)
}
)
console.dump(t)
console.pause(true);
aardio - 函数执行失败重试测试
于 2022-07-20 08:08:14 首次发布