执行catch异常中的先前步骤

时间:2013-03-08 09:22:43

标签: java exception exception-handling

如果我遇到一些特殊的异常,我想重做这些步骤。

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

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

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

2 个答案:

答案 0 :(得分:1)

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

如果这是一项要求,那么您可以在trycatch块中将这些步骤归结为单独的方法并调用该方法。

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

private void mySteps() throws SpecialException{
     // Step 1
     // Step 2
     // Step 3
}

答案 1 :(得分:0)

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

如果步骤抛出已检查的异常,则应将throws关键字添加到方法签名中。