2012-06-07 51 views
1

我做了一個矩陣實施,它有一個超載operator *。如果有2個不兼容尺寸的matricies,我想扔ArgumentExceptionInvalidOperationException。我應該使用哪一個?或者,也許這很方便宣佈我自己的?從超載運營商扔什麼異常

+1

聲音給我像InvalidOperationException聽起來更合適。 –

回答

4

絕對創建你自己的MismatchingDimensionsException

您的用戶不會被這樣的例外困惑,他們會立即知道問題所在。處理矩陣時會出現很多問題。

現在,你是從ArgumentException還是InvalidOperationException派生它?我會說前者,但後者同樣有道理。如果你使用你自己的異常類,那麼它就不那麼重要了。

+0

如果你解釋這個決定,我會很感激,所以我可以理解我將來何時創建自己的。或者將我指向文檔。 –

+0

我添加了一個解釋。這裏沒有對或錯,只是當你有足夠的經驗時,你會得到一種預感。 – zmbq

+2

這不是一個參數例外。你提供了論點。我會說這是一個無效的操作異常,因爲用戶/ UI開發人員在對它們進行操作之前未檢查矩陣的屬性。如果是處理驗證的API調用 - 那麼是 - 拋出異常。我不會爲此創建自定義例外。我看到那些自定義異常過載的項目變得凌亂。沒有理由不能在這裏用一個無效的操作異常來評論它爲什麼失敗。 – tsells