我有幾個(超過20個)方法(getXXX()
),它們在調用時可能會拋出異常(NotCalculatedException
)。重構調用其他方法的方法拋出異常
在另一種方法中,我需要訪問這些方法給出的結果。就目前而言,我有一個可怕的代碼,它看起來像:
public void myMethod() {
StringBuffer sb = new StringBuffer();
// Get 'foo' result...
sb.append("foo = ");
try {
sb.append(getFoo());
} catch (NotCalculatedException nce) {
sb.append("not calculated.");
}
// Get 'bar' result...
sb.append("\nbar = ");
try {
sb.append(getBar());
} catch (NotCalculatedException nce) {
sb.append("not calculated.");
}
...
}
,而無需修改getXXX
方法(因此他們必須保持自己的throws NotCalculatedException
),你會如何重構/簡化myMethod()
使它看起來更好?
請注意,此項目仍在使用Java 1.4 :(
編輯
我不能把所有的getXXX()
方法在try { ... }
塊,作爲StringBuffer的意志如果一種方法拋出NotCalculatedException
,則不完整。
public void myMethod() {
StringBuffer sb = new StringBuffer();
try {
sb.append("foo = ");
sb.append(getFoo());
sb.append("\nbar = ");
sb.append(getBar());
} catch (NotCalculatedException nce) {
sb.append("not calculated.");
}
...
}
在其他也就是說,如果getFoo()
拋出一個NotCalculatedException
,我想有這樣的輸出:
foo = not calculated
bar = xxx
...
如果我把一切都放在一個單一的try { ... }
,我將有輸出,我不想要得到:
foo = not calculated
是的,我想過使用反射,但我真的不喜歡這樣的解決方案(在這種情況下)... – romaintaz 2009-09-15 14:33:01