|
|
1
11
您应该抛出ArgumentNullException。您正在尝试进行参数验证,因此应该抛出一个调整为参数验证的异常。NullReferenceException不是参数验证异常。这是一个运行时错误。
此外,您永远不应该显式抛出NullReferenceException。这只能由CLR抛出。当显式抛出通常仅由CLR抛出的异常时,会出现微妙的差异。 这也接近于对以下内容的欺骗 |
|
|
2
4
为了和Enumerable LINQ运算符保持一致,请抛出ArgumentNullException(不是NullReferenceException)。 我会在TakeRandom方法中进行验证,因为堆栈跟踪将明确表示TakeRandom反对给定null参数。 |
|
|
3
1
也许我疯了,但既然这是一个论点,我会抛出ArgumentNullException:/ 不过,一般的经验法则是抛出源自系统的异常。可能时出现应用程序异常。NullReferenceException是框架/CLR会抛出的异常。 http://msdn.microsoft.com/en-us/library/system.exception(VS.71).aspx
|
|
Akira Takeshi · 如何用JavaScript编写扩展方法 2 年前 |
|
|
Aleksandar · 无法调用枚举扩展方法 2 年前 |
|
|
Codebadger · 将泛型传递给扩展方法 8 年前 |
|
|
Otman IGHOULASSEN · 从子类调用基类的扩展方法 8 年前 |
|
|
sirksel · 拳击弦场或扩展Kotlin中所有弦的替代方案? 8 年前 |