2012-06-21 36 views
0

我有一種方法,我在VO中設置了一些屬性。該方法看起來有些事象下面這樣:我應該使用什麼異常處理?

public void methodToPopulateVO(MyVO vo) 
{ 
    BackendClass bClass = new BackendClass(); 
    vo.setA(bClass.getA()); //Line 1 
    vo.setB(bClass.getB()); //Line 2 
    vo.setC(bClass.getC()); //Line 3 
} 

任何這些方法getA()getB()getC()可以拋出異常。我的要求是,如果getA()正在拋出一些異常,仍然在第2行和第3行執行代碼。這適用於每一行(例如,如果第2行導致異常,第3行仍應執行)。我無法更改BackendClass的實施。我應該實施哪種異常處理技術,對性能的影響會較小,因爲性能是我們應用程序的衡量因素?

注意真實系統有大約20場,而不僅僅是3

+0

你相信什麼是選項? –

+0

由於您必須捕捉異常,所以每個解決方案(明確捕獲,最後,就是這樣)將幾乎相同。 – Voo

回答

5

這裏有一種方法:

public void methodToPopulateVO(MyVO vo){ 
    BackendClass bClass = new BackendClass(); 
    try { 
     vo.setA(bClass.getA()); //Line 1 
    } catch (Exception e) { 
     log(e); 
    } 
    // same for the next 2 method calls. 
} 

現在,當getA()拋出一個異常,你記錄事件並繼續執行。

0

是你應該使用異常處理引起的任何異常可以拋出你的方法,即

setA(bClass.getA()); 
setB(bClass.getB()); 
setC(bClass.getC()); 

你應該嘗試和catch內編寫和使用適當的異常類來處理它,或者使用異常類漁獲.. ..

相關問題