我知道這樣做的反措施。我想知道是否有一個很好的,緊湊的方式來做到這一點。Java:我將如何編寫try-catch-repeat塊?
15
A
回答
25
圖例 - 你的答案可以改進;因爲如果你失敗numTries
次,你會吞噬異常。好得多:
while (true) {
try {
//
break;
} catch (Exception e) {
if (--numTries == 0) throw e;
}
}
+5
hm if(--numTries == 0)真的很危險。如果它是在0或更低的開始處呢?我更喜歡<1 – hudi 2012-11-06 08:28:08
5
我已經看到了一些辦法,但我用的是以下幾點:
int numtries = 3;
while(numtries-- != 0)
try {
...
break;
} catch(Exception e) {
continue;
}
}
這可能不是最好的辦法,但。如果您有任何其他建議,請將它們放在這裏。
編輯:更好的方法是由oxbow_lakes建議。請看看...
2
如果你已經使用Spring,你可能要創建這種行爲的一個方面,因爲它是一個橫切關注點和所有你需要創建的是,所有的方法相匹配的切入點是需要功能。看到http://static.springsource.org/spring/docs/2.5.x/reference/aop.html#aop-ataspectj-example
1
嘗試面向方面的編程和@RetryOnFailure
註釋從jcabi-aspects:
@RetryOnFailure(attempts = 2, delay = 10, verbose = false)
public String load(URL url) {
return url.openConnection().getContent();
}
相關問題
- 1. 如何編寫Nginx模塊?
- 2. 如何編寫Python模塊?
- 3. 我將如何在java中編寫此方法?
- 4. 我將如何編寫抽象方法?
- 5. 如何用Java編寫vertx
- 6. 如何用Java編寫
- 7. 如何在opendaylight控制器中編寫java模塊
- 8. Java - 模塊ArrayList - 我如何
- 9. 如何在swift中編寫Objective-C塊
- 10. 如何在jade中編寫javascript塊?
- 11. 如何編寫模塊化Android代碼
- 12. 如何在C中編寫PHP模塊
- 13. 你如何編寫非阻塞模塊?
- 14. 如何編寫Linux內核模塊?
- 15. 如何模塊化編寫JavaScript?
- 16. 如何編寫自己的CasperJS模塊?
- 17. 如何編寫強大的完成塊?
- 18. 如何更模塊化地編寫jQuery?
- 19. 如何在C++中編寫Apache模塊?
- 20. 如何爲jsoncpp編寫cmake模塊?
- 21. 如何編寫Linux VFS模塊?
- 22. 如何在Windows上編寫模塊?
- 23. 如何爲我自己編寫的內核模塊禁用rmmod?
- 24. 如何爲我的模塊編寫生成文件
- 25. 如何在我的javadoc示例中編寫塊註釋?
- 26. 編寫我自己的塊方法
- 27. Java同步寫塊
- 28. 如何編寫一個Windows防火牆,最好用Java編寫
- 29. 如何編寫Java Swing菜單列表?
- 30. 如何編寫方法聲明java
請發表您自己的嘗試。 – BalusC 2009-11-13 19:55:30