我知道摘要和說明。InvalidOperationException與ArgumentException
但是如果ARGUMENT處於無效狀態?
我認爲ArgumentException更合適,因爲InvalidOperationException文檔說對象本身在調用方法時必須處於無效狀態,對嗎?
我知道摘要和說明。InvalidOperationException與ArgumentException
但是如果ARGUMENT處於無效狀態?
我認爲ArgumentException更合適,因爲InvalidOperationException文檔說對象本身在調用方法時必須處於無效狀態,對嗎?
文檔指出:相當明確:
出現InvalidOperationException在情況下使用時,未能調用 的方法是由原因其他不是無效的參數引起的。
...
如果方法調用失敗是由於無效的參數,然後 的ArgumentException或其派生類之一,ArgumentNullException 或ArgumentOutOfRangeException,應改用拋出。
您的方法期望參數處於某種狀態,其中可能包括任何內容,包括處於由參數類型本身定義的「有效狀態」。
我認爲不同的主要觀點是問題的根源:
它是您調用方法的參數或對象嗎?
您可能錯過了缺乏示例。
ArgumentException
:由於傳遞給該函數的參數無效,因此示例將是一個函數以異常結束。在特定情況下,使用任何防禦機制都可以正確處理這種例外情況。
InvalidOperationException
:示例將在枚舉器生效時修改集合。這將導致無效的操作異常。
太本地化......實際用戶不關心這個......重要的是你從中獲得了什麼,所以它是純粹的品味...... – 2013-05-08 07:20:37