你在Java中如何定義你自己的Exception層次結構?在Java中如何以及在哪裏定義自己的Exception層次結構?
我的主要問題涉及你的Exception類必須被定義的包的位置。
我們是否爲我們的異常創建了一個特殊的包,並將所有類放入其中?
你在Java中如何定義你自己的Exception層次結構?在Java中如何以及在哪裏定義自己的Exception層次結構?
我的主要問題涉及你的Exception類必須被定義的包的位置。
我們是否爲我們的異常創建了一個特殊的包,並將所有類放入其中?
我將此用作一般規則。
該語言沒有指定什麼要求,用戶定義的類應該放入哪些包。只要該類延伸java.lang.Throwable
,就可以拋出該類。
您可以在任何地方創建您的Exception類。
重要的是擴展一個現有的Exception類(實際上是java.lang.Throwable
)。例如java.lang.Exception
或java.lang.RuntimeException
。第一個是檢查異常,而擴展RuntimeException將導致未檢查的異常;兩者之間的差異詳述如下here。
我把我所有的自定義異常放入com.company.project.exception
包中。我這樣做,而不是讓他們「靠近」他們出現的地點。
這裏是我的推理:如果給定的異常只在某個地方出現在一個或兩個服務類中,那麼它可能不是一個足夠的例外,應該擁有它自己的類。只有當我看到一個常見的主題出現在多個地方時,我纔會去創建自定義Exception類的麻煩。如果它在多個地方出現,那麼就沒有合適的「附件」包,因此特定於異常的包似乎是正確的選擇。
我認爲提問者知道這一點。他的問題更多地涉及最佳實踐。 – Sergio 2013-03-11 10:11:57