[英]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.