如果我有一個方法來檢查它的參數的有效性,拋出我自己的自定義異常派生自System.ArgumentException
是否可以?我在問,因爲ArgumentException
本身是從System.SystemException
派生而來的,我看到有衝突的指導原則,應用程序是否應該從SystemException
派生。 (儘管是間接的,從ArgumentException
推導仍然無異於從SystemException
獲得。)可以從System.ArgumentException派生嗎?
我看到很多的指導方針說,不從ApplicationException
獲得,而是從異常派生來代替。我對此感到高興。我不確定是否可以從SystemException派生。
如果我不應該從SystemException
派生出來,那麼我應該從哪個派生我的"invalid argument"
異常類?
如果提供的參數無效,該方法預計會拋出'ArgumentException'。你可以完全從它中派生出來用於這種情況。從「SystemException」派生出來沒有意義,但如果參數爲null,則拋出'ArgumentNullException',如果它超出可接受的範圍則拋出'ArgumentOutOfRangeException'。它們都來自'ArgumentException'。所以在這種情況下拋出一個不是從'ArgumentException'派生的自定義異常是恕我直言,你不應該做的事情。所以我會用Botz3000的答案。 –