假設這段代碼是20米的地方,總是相同的捕捉單獨的異常或使用的instanceof - Java 6中
try {
// do something
} catch (FirstException e) {
// log it
} catch (SecondException e) {
// log it
}
豈不是更好地使用這樣的事情還是instanceof
是不是好的解決辦法?
try {
// do something
} catch(Exception e) {
logException(e);
}
void logException(Exception e) {
if (e instanceof FirstException) {
// log it
} else if (e instanceof SecondException) {
// log it differently
} else {
// do something with other exception
}
}
,我真的很討厭有關解決方案的唯一的事情就是抓住Exception
這是definitelly不是最好的辦法...有什麼更好的辦法?
我會使用第一種方法,併爲所有捕獲的異常調用logException。 – Thihara 2013-03-21 08:48:51
如果發生'FileNotFoundException',會發生什麼情況! – Azodious 2013-03-21 08:50:47
分別捕獲每個異常只有在您打算對每個異常執行不同的處理時纔有意義。在現實世界的應用中,這種情況很少。可行的方法是,如果運行時錯誤是一個主要問題並且**正確記錄它們,那麼使用超類「Exception」或「Throwable」來捕獲em'全部,以便對開發人員在何處以及實際發生的事情有意義。 – Vrushank 2013-03-21 09:08:52