Java程序中的重试特定方法
我在下面有这段代码,在这段代码中,当程序出现任何异常时,它会重试整个程序。这似乎很有效。然而,当一个程序中有数百万个方法时,如果每次遇到异常时都重试整个程序,这似乎有点太多了
我想说的是,假设我在一个程序中有5个方法,方法1,方法2,方法3,方法4和方法5。如果发现方法3异常,它应该只重试方法3,而不是重试整个程序。同样,如果程序在方法5中出现错误,它应该只重试方法5
这是我到目前为止所拥有的。在这段代码中,如果检测到方法1、方法2、方法3、方法4或方法5,它将重新启动整个程序。我不想这样,我只想在方法中发现异常时重试。我不知道如何解决这个问题。我们将不胜感激。一些参考代码将非常有用,谢谢:)
测试。爪哇
public class Test {
private static MAX_RETRIES = 3;
public static void main (String [] args) {
int retryAttempt = 1;
while (retryAttempt <= MAX_RETRIES) {
try{
method 1;
method 2;
method 3;
method 4;
method 5;
break;
}catch(Exception e){
e.printStackTrace();
retryAttempt ++;
if (retryAttempt == MAX_RETRIES){
//do something here
return;
}
}
}
}
}
# 1 楼答案
你可能想看看http://aspects.jcabi.com/的
@RetryOnFailure
# 2 楼答案
您可以创建一个布尔数组,指示哪些方法是正确的。“ok”的意思是“方法没有任何问题”。因此,在调用“方法1”之前,请检查
if(!isOk[1]) { method1(); isOk[1] = true;}
,其他方法也是如此你甚至可以做到:
而不是:
你可以做:
当然,您必须创建:
boolean isOk[] = new boolean[6];
//或任何方法编号。 注意:为了确保它们最初是假的,您可以这样做:for(int i = 0; i < 6; i++) isOk[i] = false;