2016-11-21 99 views
0
捕獲異常

所以我們可以說我有一個類應用這是我正在做的錯誤處理,並在此特定的類我做的方法引發內部方法

try { 
     layermethod(); 
    } catch (IOException e) { 
     Message.fileNotFound(filename); 
    } 

layermethod()Layer類,這是一條「掩碼「類,我用它將信息從應用程序傳遞到核心應用程序和對象。

所以在類層layermethod()只被定義爲

public void layermethod(Parser _parser) { 
    _parser.throwmethod(_interpreter); 
    } 

只有在解析類我有實際拋出異常

public void throwmethod(Parser _parser) throws IOException { 
     // method implementation 
    } 

不幸的是由於是方法,我得到錯誤

error: unreported exception IOException; must be caught or declared to be thrown 
     _parser.throwmethod(_parser); 
         ^

因爲我沒有捕捉到異常在圖層類上。

有沒有什麼辦法可以只對App類進行錯誤處理(捕獲異常)?假設我不能丟棄圖層類

回答

1

您有兩種選擇。要麼你可以重構Layer.layermethod()也拋出IOException

public void layermethod(Parser _parser) throws IOException { 
    _parser.throwmethod(_interpreter); 
} 

或者,你可以明確地在上面的方法添加try catch塊:

public void layermethod(Parser _parser) { 
    try { 
     _parser.throwmethod(_interpreter); 
    } catch (IOException e) { 
     // handle exception here 
    } 
} 

既然你似乎想要把例外進入App班,前一種選擇可能是你想到的。