我目前的逻辑是
try {
Boolean succeeded = process(); /* May throw SpecificException */
if (succeeded) { /* next step */ }
else { /* clean up */ }
} catch (SpecificException e) {
/* clean up */
}
清理部分是相同的。是否有避免重复代码的好方法?
最佳答案
如果该try-catch块是一个完整的方法(即在同一方法中该块之后没有其他逻辑应执行),则可以编写:
try {
Boolean succeeded = process();
if (succeeded) {
/* next step */
...
return;
}
} catch (SpecificException e) {
// don't throw an exception
}
/* clean up */