我有一個獨立的應用程序在將平面文件導入到SQL數據庫之前進行數據檢查。使用現有的框架ConstraintException違反數據約束條件
在這樣的背景下,拋出System.Data.ConstraintException
是否合理? (該例子是人爲的。)
if(_keys.ContainsKey(key))
{
throw new ConstraintException(string.Format("Uniqueness violated! " +
"This unique combination of '{0}' already found on line {1}",
GetUniquenessColumnList(), _keys[key]));
}
ConstraintException's documentation指出它「表示試圖違反的約束的動作時所引發的異常。」
以這種方式使用內置異常有問題嗎?有更好的使用方法嗎?我應該建立自己的,儘管這種例外似乎是根據我的情況量身定做的?
同意,但獲得一個新的(自定義)類(也許暴露了一些額外的屬性有關異常的更多詳細信息,如ViolatedKey)也是一個(好,也許第二?)選項。例如,這將使得「提取」「違反的鍵(值)」更容易,因爲您不必依賴從實際消息(字符串)中獲取它。在考慮這個選項時,請確保你保持[YAGNI](http://en.wikipedia.org/wiki/You_ain't_gonna_need_it)在你的頭腦後面。 – RobIII 2012-07-17 23:25:14