假設我有一種方法將某種對象作爲參數。現在說,如果這個方法傳遞一個空參數,這是一個致命的錯誤,應該拋出一個異常。它是值得的,我的代碼是這樣的(記住這是一個簡單的例子):Throwing ArgumentNullException
void someMethod(SomeClass x)
{
if (x == null){
throw new ArgumentNullException("someMethod received a null argument!");
}
x.doSomething();
}
抑或是安全的,我只依靠它扔NullException當它調用x.doSomething() ?
其次,假設的someMethod是一個構造函數和x將不被使用,直到另一種方法被調用。我應該立即拋出異常還是等到需要x並拋出異常呢?
您可能有興趣在通過[10個公用事業C#開發人員應該知道]解釋了Throw.If方法(http://www.codeducky.org/10-utilities-c-developers-should-know-part ))和Throw.IfNull([10 utilities gist on github])(https://gist.github.com/madelson/9177264)。它們允許你更簡潔地編寫你的參數檢查邏輯:`Throw.IfNull(x,「someMethod收到一個空參數!「)` – 2014-05-16 04:26:24
另外值得注意的是,這裏使用的`ArgumentNullException`的構造函數並沒有將完整的消息作爲參數,而是接受`paramName`,它是參數名稱爲null 。請參閱[MSDN的完整定義](http://msdn.microsoft.com/en-us/library/wssa019h(v = vs.110).aspx)。 – 2014-10-08 16:06:14
http://programmers.stackexchange.com/questions/121121/how-do-throw-an-argumentnullexception -help – 2015-04-13 05:27:35