【发布时间】:2010-12-16 10:24:38
【问题描述】:
我知道有一种反方法可以做到这一点。我想知道是否有一种很好且紧凑的方法可以做到这一点。
【问题讨论】:
-
请发表您自己的尝试。
-
有没有办法将其表达为流?
标签: java exception exception-handling try-catch
我知道有一种反方法可以做到这一点。我想知道是否有一种很好且紧凑的方法可以做到这一点。
【问题讨论】:
标签: java exception exception-handling try-catch
从jcabi-aspects尝试面向方面的编程和@RetryOnFailure注解:
@RetryOnFailure(attempts = 2, delay = 10, verbose = false)
public String load(URL url) {
return url.openConnection().getContent();
}
【讨论】:
传奇 - 您的答案可以改进;因为如果你失败了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
【讨论】: