2

我有一个独立的应用程序,在将平面文件导入 SQL 数据库之前对其进行数据检查。

在这样的情况下,抛出一个有意义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 的文档指出它“表示在尝试违反约束的操作时引发的异常”。

以这种方式使用内置异常有问题吗?有没有更好的使用?我是否应该建立自己的,即使这个例外似乎是根据我的情况量身定制的?

4

2 回答 2

3

我想你已经回答了你自己的问题

...这个例外似乎是为我的情况量身定做的?

为什么要重新发明轮子?

编辑:

查看这篇 MSDN 文章:选择正确的异常类型来抛出

考虑抛出驻留在系统命名空间中的现有异常,而不是创建自定义异常类型。

...

不要为了让你的团队例外而创建和抛出新的例外。

于 2012-07-17T23:18:52.267 回答
2

不,这样做没有问题。如果已经存在合适的例外,则无需创建新例外。

于 2012-07-17T23:14:33.500 回答