我有一個負責記錄操作的包裝器,名爲OperationWrapper。其結構簡單,並且如下:立即重新陷入catch塊並最終使用
public void runOperation(Operation o) throws Exception{
logOperationStarted();
o.execute();
logOperationFinished();
}
由於「o」的操作可以拋出異常,logOperationFinished()
方法不會總是被調用,因而記錄操作不正確。
此外,調用runOperation()
方法的各種組件處理這些異常。
已經想確保logOperationFinished()
將始終運行,我實現了以下結構:
public void runOperation(Operation o) throws Exception{
logOperationStarted();
try{
o.execute();
}
catch(Exception e){
throw e;
}
finally{
logOperationFinished();
}
}
現在logOperationFinished()
並始終運行,但我正在逐漸從的IntelliJ警告:夾縫
立即重新排除異常
報告任何捕獲塊,其中捕獲的異常爲無需對其執行任何操作,立即重新生成。這樣的 catch塊是不必要的或缺乏錯誤處理。
對我來說,似乎IntelliJ在發出此警告時沒有考慮到finally塊。
我做錯了什麼或有沒有更好的方法來實現這一目標?
謝謝。
爲什麼你抓住它開始,如果你只是要扔掉它?這不像你直接對異常做任何事情。 (另外,它很差*練習抓住'Exception' - 儘量避免出現這種情況。) – Makoto