我在這裏提出了幾個問題,並閱讀了一些關於異常處理的文章,但不要以爲我真的在抓,什麼時候不應該處理異常。從我讀過的文章中可以看出「只處理可以從中恢復的異常」這是什麼意思。如果我不能處理異常,我該怎麼辦?讓它傳播回堆棧?如果我不處理它,我該如何記錄它並顯示用戶友好的錯誤消息。大多數人在網絡應用和網絡服務中做什麼?處理.net中的異常
舉個例子說,我有一個從SQL
try{
//do something with db
}catch(SqlException ex){
//what should i do here
//should i call code again to retry getting data from db
}catch(Exception ex){
//should i even catch exception of type exception
}
如何在較低層處理異常提取數據的較低層數據層?我應該讓這個例外冒出來嗎?如果是這樣的話,如果我想要捕獲sqlexception類型的異常,那麼我需要對庫的引用sqlexception是其中的一部分,但我肯定不應該在與數據訪問無關的層中引用該庫。
這些其他主題可能會幫助:http://stackoverflow.com/questions/2765086/exception-handling-policy-in-libraries –
http://stackoverflow.com/questions/5772237/exception-handling- in-layered-architecture –