只是爲了最佳實踐而尋求一些建議。拋出ArgumentOutOfRangeException是正確的做法嗎?
我有一個布爾方法檢查數組的每個元素的某種條件。數組參數不能爲空,也不能包含空值,否則返回true或false都沒有意義。
Best practices指出,如果傳遞給方法的參數無效,應引發ArgumentException(或派生)。如果數組參數爲null,則該方法將引發ArgumentNullException。但是,我不太確定我應該拋出什麼空數組或包含空值的數組。
我最初的想法是拋出一個簡單的ArgumentException和一個消息來解釋問題的性質,但一位同事建議我拋出一個ArgumentOutOfRangeException。
我通常認爲ArgumentOutOfRangeException是「太高」或「太低」的東西。我的同事似乎認爲它也可以代表「不夠」和「缺少某些東西」。
他對嗎?或者我應該遵循我的第一個想法並拋出ArgumentException?
參數null僅僅是那個而已。在我的腦海裏,一個空數組或一個空值的數組不是一個空參數。 – Paparazzi
既不在我的。這就是爲什麼我拋出ArgumentNullException只有當數組本身是一個空值。問題是當數組不爲空但是仍然無效時應該拋出什麼。 – Crono
如果數組不是空和無效,那麼這不是一個ArgumentOutOfRangeException? – Paparazzi