0

如果我发现一些特殊异常,我想重做这些步骤。

我不想再次复制代码。我怎样才能做到这一点?

try{
//step1
//step2
//step3
}catch(specialException1 e){
    //redo step1
    //redo step2
    //redo step3
}

编辑:实际上,由于检查不同的条件,该异常是从另一个类中抛出的。当回到这个类时,由于需求,需要处理并再次执行该步骤。像 Oauth 过期的例子.. 所以需要再次刷新令牌。

4

2 回答 2

1

首先,当其中一个步骤抛出一个Exception时,你为什么要再次执行它们?

如果这是一个要求,那么您可以将这些步骤组合在一起并将它们放在单独的方法中,然后在trycatch块中调用该方法。

try{
    mySteps();
}catch(SpecialException se){
    mySteps();
}

private void mySteps() throws SpecialException{
     // Step 1
     // Step 2
     // Step 3
}
于 2013-03-08T09:25:14.297 回答
0

将步骤导出为私有静态方法,在需要时调用它们。

如果这些步骤引发检查异常,throws则应将关键字添加到方法签名中。

于 2013-03-08T09:24:54.897 回答