2015-11-02 126 views
2

當創建custom exception class(例如自定義運行時異常)時,是否有一個特定的約定來創建folder/package結構中的哪個位置?Java自定義異常:包約定?

是否所有的自定義異常類都在相同的包中?

+0

相同的包裝?不,但他們都必須擴展Throwable或其任何子類。 – rajuGT

+0

不,你不應該創建單獨的包。請參閱「按功能打包」:http://www.javapractices.com/topic/TopicAction.do?Id = 205 – user996142

+1

檢查Java的例外情況是如何組織的並使用相同的方法。 – Kai

回答

7

一個異常類應該總是在與能夠拋出它的類相同的包中定義。永遠不要創建一個單獨的包來保存異常。

一般來說,一個軟件包應該封裝一個主要的功能單元。例外是該功能的一部分。

僅應創建子包以限制對類和/或方法的訪問。這是通過創建「包訪問」類和/或方法完成的:它們既不公開也不受保護,也不私有。沒有訪問修飾符意味着它們僅對同一包中的類可見。如果你沒有任何這樣的類或方法,你可能不應該做一個子包。

子包應該用於創建:

  • 分組碰巧有一些共同的東西幾類。 (請注意,Java SE中沒有java.text.format或java.net.socket或javax.swing.button包。)
  • 分解包,因爲它似乎有太多的類。 (在一個包裝中有五十個類別沒有問題。)