2015-09-03 59 views
0

在Java中,我們有能力編寫自己的例外。爲什麼我應該創建自己的例外?

爲什麼我要/需要這樣做?這樣做有什麼好處或好處?

爲什麼要創建我的異常,而不是添加到標準異常的捕獲?

+1

想象一下,您的系統在特定條件下工作的情況,例如員工年齡必須超過25歲,在此情況下,如果用戶輸入使其未成年的出生日期,將會很好地進行例外檢查,這是一個非常模糊的示例但它只是一個簡單的場景,有複雜的情況,但不幸的是現在沒有想到任何權利 –

回答

3

如果您對以下任何問題回答「是」,您應該編寫自己的異常類;否則,你可能可以使用別人的。

  • 您是否需要一個不在Java平臺中表示的異常類型?
  • 如果他們能夠區分您的異常與其他供應商編寫的類所拋出的異常,是否可以幫助用戶?
  • 您的代碼是否會拋出多個相關異常?
  • 如果您使用他人的例外,用戶是否可以訪問這些例外?
  • 一個類似的問題是,如果你的軟件包是獨立的和獨立的?

取自「2.創建自定義例外」this article

1

您不一定需要,但如果您要創建例如庫,則可能需要創建自己的異常層次結構以配合使用它。

有名的自定義異常將提供額外的信息,但通常您會發現將滿足您的要求的現有異常(您不需要製作自己的IllegalArgumentException或類似的異常類型)。

2

如果您需要針對不可恢復的情況拋出異常(換句話說,您不打算捕捉並處理它),那麼不要創建自己的異常類型。

但是,有合法的(雖然非常罕見)的情況下,實際上異常是用來表示可恢復的特殊情況。在這些情況下,創建自己的異常類型來表示特定於域的情況是最好的選擇。

順便說一句,當我說「處理」時,我的意思是超過日誌或返回一般性失敗響應。處理代碼應該「處於」異常狀態並應用一些業務邏輯來繼續。

相關問題