2010-12-10 60 views

回答

0

這一切都取決於要求是什麼。

在某些情況下,您確實希望喚起呼叫者的異常,因爲呼叫者可能會更好地處理該問題。 發送電子郵件可能不總是系統的關鍵,但它可能是當它需要告訴你有人登錄到你的銀行帳戶。

另一方面,您不希望冒泡應該由被調用的方法處理的異常。 如果您正在編寫的內容是通過FTP下載文件,那麼如果您打算稍後再試一次,則不希望每次斷開連接都會打擾調用方。

這又取決於當時的情況,而不是經驗法則。

1

它確實取決於程序能夠在哪裏處理錯誤,以有用的方式報告它,並繼續一些有用的處理。

在我編寫的UI代碼中,例如在處理事件時,我可能調用私有方法,然後調用遇到錯誤的一些實用程序方法。在實用方法中處理它沒有多大意義,因爲它可能不知道正在處理的事件以及向用戶報告錯誤的所有方法。事件處理的第一級可能處於更好的狀態,要麼停止處理,要麼進行必要的調整。另一方面,如果實用方法可以合理地處理所有將被使用的情況下的錯誤(也許有一些重試邏輯或計劃B邏輯),那麼它可能在這裏。

但是,對於我所完成的大部分UI代碼,它通常會傳遞到更高的級別,因爲它可以更好地處理特定情況。