代码拉取完成,页面将自动刷新
同步操作将从 spjich/retrieval 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
回调形式: 组件采取方法回调的方式通知调用者,将判断的权利交给用户,更加灵活
采用
build
方法进行构造,用户实现Retryable
接口中的方法
new RetryBuilder().build().proceed((round, nanos) -> "success");
条件形式: 组件不会回调任何方法(包括whenError
,whenFinish
,postCondition
,preCondition
)whenTimeout
除外,只根据failOn
以及continueOn
进行循环控制
采用
buildCondition
方法进行构造,用户实现ConditionRetryable
接口中的get
方法
Class[] failOn = {IllegalAccessException.class};
Class[] continueOn = {IllegalArgumentException.class};
new RetryBuilder()
.withCondition()
.failOn(failOn)
.continueOn(continueOn)
.build()
.proceed(() -> "success");
failOn
异常时,抛出ProceedException,cause为具体异常continueOn
异常时,继续循环。未匹配到时抛出ProceedException,cause为具体异常failOn
后判断continueOn
failOn
,continueOn
都未匹配上时继续循环例1
Class[] failOn = {IllegalAccessException.class};
当发生IllegalAccessException时,程序将抛出ProceedException(满足failOn)
当发生 IllegalAccessException外的其他异常时,将继续运行
例2
Class[] continueOn = {IllegalAccessException.class,RuntimeException.class};
当发生IllegalAccessException时,将继续运行(满足continueOn)
当发生 IllegalAccessException,RuntimeException 外的其他异常时,程序将抛出ProceedException
例3
Class[] failOn = {RuntimeException.class};
Class[] continueOn = {RuntimeException.class};
当发生RuntimeException时,程序将抛出ProceedException(先判断`failOn`后判断`continueOn`)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。