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