如果我有一个检查其参数有效性的方法,那么从
我看到很多指南都说不要从
如果我不应该从
System.ArgumentException
派生自定义异常后抛出是否可以?我之所以问这个问题是因为ArgumentException
本身就是从System.SystemException
派生而来,关于应用程序是否应该派生自SystemException
的指南存在冲突。(尽管间接地从ArgumentException
派生仍等同于从SystemException
派生。)我看到很多指南都说不要从
ApplicationException
派生,而是从Exception
派生,我对此很满意。但我不确定的是是否也可以从SystemException派生。如果我不应该从
SystemException
派生,那么我的"无效参数"异常类应该从哪里派生呢?
ArgumentException
异常。您可以完全从中派生以在这种情况下使用。从SystemException
派生没有意义,但是如果参数为空,则可以抛出ArgumentNullException
;如果超出了可接受的范围,则可以抛出ArgumentOutOfRangeException
。它们都派生自ArgumentException
。因此,在这种情况下抛出一个不派生自ArgumentException
的自定义异常是我认为您不应该做的事情。所以我赞同Botz3000的答案。 - Şafak Gür