如果我遇到一些特殊的异常,我想重做这些步骤。
我不想再复制代码了。我怎样才能做到这一点?
try{
//step1
//step2
//step3
}catch(specialException1 e){
//redo step1
//redo step2
//redo step3
}
编辑:实际上,由于使用不同的条件进行检查,该异常会从另一个类抛出。回到本课程时,由于需求,需要处理并再次执行该步骤。像Oauth这样的例子已经过期..所以需要再次刷新令牌。
答案 0 :(得分:1)
首先,当其中一个步骤抛出Exception
时,为什么还要再次执行它们?
如果这是一项要求,那么您可以在try
和catch
块中将这些步骤归结为单独的方法并调用该方法。
try{
mySteps();
}catch(SpecialException se){
mySteps();
}
private void mySteps() throws SpecialException{
// Step 1
// Step 2
// Step 3
}
答案 1 :(得分:0)
将这些步骤导出为私有静态方法,并在需要时调用它们。
如果步骤抛出已检查的异常,则应将throws
关键字添加到方法签名中。