我已經看過其他try catch finally
這裏的問題,但我不確定這個問題已經得到解答。是否有異味做這樣的事情:Try/Catch /最後,最後使用catch中的異常?
Exception? ex = null;
try { //something }
catch (Exception e) { ex = e ;}
finally {
DoSomething();
}
... //more code
//end of method
if (ex !=null) { throw ex; }
基本上,我試圖確保某些代碼(try/catch語句外/最後)運行,並且如果發生了一個異常被拋出,但直到所述代碼運行之後。我無法將所有代碼放在finally
塊中,因爲它不在某些條件之內。
如果確實如此,其實氣味不好(我懷疑它確實如此),如何實現這一目標?
你在那個catch裏面的地方做了些什麼有用的事情,最後是不允許remove catch和異常傳播?我猜如果你拋出了前者,那麼當你捕獲它時(如源碼等),你會得到更少的信息。 –