[英]Java: How would I write a try-catch-repeat block?
我知道这样做的对策。 我想知道是否有一种不错且紧凑的方法来做到这一点。
图例-您的答案可能会有所改善; 因为如果您失败numTries
次,您将吞下该异常。 好多了:
while (true) {
try {
//
break;
} catch (Exception e ) {
if (--numTries == 0) throw e;
}
}
我已经看到了几种方法,但是我使用以下方法:
int numtries = 3;
while(numtries-- != 0)
try {
...
break;
} catch(Exception e) {
continue;
}
}
但是,这可能不是最佳方法。 如果您还有其他建议,请放在此处。
编辑:oxbow_lakes建议了一种更好的方法。 请看一下...
如果您已经在使用Spring,那么您可能想为此行为创建一个方面,因为它是一个跨领域的问题,您需要创建的只是一个切入点,该切入点与所有需要该功能的方法相匹配。 参见http://static.springsource.org/spring/docs/2.5.x/reference/aop.html#aop-ataspectj-example
尝试从jcabi-aspects进行面向方面的编程和@RetryOnFailure
批注:
@RetryOnFailure(attempts = 2, delay = 10, verbose = false)
public String load(URL url) {
return url.openConnection().getContent();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.