博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Groovy] 在Groovy中优雅的实现do while
阅读量:6447 次
发布时间:2019-06-23

本文共 965 字,大约阅读时间需要 3 分钟。

Groovy原生是不支持do while的,参考

  •  > 
  •  >  > 
  •  > 

曲线救国,可以这么用

class Looper {   private Closure code   static Looper loop( Closure code ) {      new Looper(code:code)   }   void until( Closure test ) {      code()      while (!test()) {         code()      }   }}
import static Looper.*int i = 0loop {   println("Looping : "  + i)   i += 1} until { i == 5 }

注意 until 这里用的是大括号,才能让条件变成一个闭包

实际使用场景,我们接口中需要调用外部接口,外部接口不是很稳定,容易出错,所以加入了出错重试机制,一共重试三次,三次过后还是不行才放弃。

def responseString = null        Exception exception = null        //出错重试        int retry = 0        Looper.loop {            try{                responseString = HttpUtil.post(url, JSONObject.toJSONString(post), header, 10000, 10000)            }catch (Exception ex){                exception = ex            }finally{                retry++            }        }until { exception == null || retry == 3 }        if(exception != null){            throw exception        }

 

转载于:https://www.cnblogs.com/zhengwangzw/p/10689035.html

你可能感兴趣的文章
遗传算法的基本原理与方法--笔记<转>
查看>>
《人月神话》读书笔记1
查看>>
三菱plc输出指示灯不亮怎么办(转载)
查看>>
Codeforces Continued Fractions
查看>>
doc2vec使用说明(一)gensim工具包TaggedLineDocument
查看>>
Mac下利用safari调试 Cordova的WebApp
查看>>
App测试中ios和Android的区别
查看>>
linux下性能分析命令[总结]
查看>>
java.lang.NullPointerException&com.cb.action.LoginAction.execute(LoginAction.java:48)
查看>>
IIS HTTP 500 内部服务器错误 服务器无法加载应用程序 '/LM/W3SVC''/LM/W3SVC' '找不到指定的元数据 【转载】...
查看>>
【转】TextView长按复制实现方法小结
查看>>
移动web两款滑屏框架介绍
查看>>
理解Docker :Docker 网络
查看>>
java int和String类型之间的相互转换
查看>>
通过Application存取公共数据比如登录信息等..
查看>>
U盘中毒了?教你如何删除System Volume Information这个顽固文件夹
查看>>
intellij maven配置与使用
查看>>
CentOS安装ntfs-3g
查看>>
SpringMVC文件下载与JSON格式
查看>>
postgre查询表和记录数
查看>>