在我正在爲一個項目工作的當前包中,我有大約13種不同的自定義異常。將這些放在包含所有將使用這些異常的類的包下面的子包中是否是一個好主意?在他們自己的子包中放置異常?
例如:
com.company.project.core
包含一組類,其可以引發一些自定義異常然後將其置於其內的
COM .company.project.core.exception
我現在看到的唯一缺點是我有幾個使用異常的類進口。
在我正在爲一個項目工作的當前包中,我有大約13種不同的自定義異常。將這些放在包含所有將使用這些異常的類的包下面的子包中是否是一個好主意?在他們自己的子包中放置異常?
例如:
com.company.project.core
包含一組類,其可以引發一些自定義異常然後將其置於其內的
COM .company.project.core.exception
我現在看到的唯一缺點是我有幾個使用異常的類進口。
我不認爲異常應該進入另一個包,因爲它們連接到項目中的其他類。如果一個軟件包太多擁擠,你應該分割這個軟件包,但我希望按功能標準進行分割。
無論如何,有這麼多的異常類,我會考慮一個基本異常類,可以拋出,而不是多個專門的異常。就像MyProjectException。
是的,一個異常包是一個有用的想法,使用任何可尊重的IDE將避免不得不處理導入的問題。
對於大多數程序員來說,一個更困難的問題是,無論是使用RuntimeExceptions還是爲自己的異常層次結構檢查異常。
這是一個主觀的問題,但我並不認爲需要單獨的軟件包。自定義異常與同一包中的類有關,因此將它們保留在同一個包中是合理的。
我想不出任何使用自定義異常處於自己的子包中的API的例子。當然,JDK不會。
鑑於您定義的例外數量,我認爲使用子包是一個好主意。它會保持你的核心包更整潔。從core.exceptions的封裝結構中可以清楚地看到異常類與什麼相關,所以我不同意Mnementh的評論。
是的,功能分離,不是按照類型確定的物理分離。否則,你會設置諸如x.y.interfaces和x.y.abstract等其他類似事件的先例。 – Robin 2010-03-03 14:18:44
經過一段時間後,我決定重構一些特殊的異常,並使已經存在的「基本異常類」更加有用。 – 2010-03-03 15:12:53