如何使用c#捕捉特定的异常?
在我的数据库中有一些列上有唯一索引。
当用户插入重复记录这个例外是抛出:捕捉特定的异常
不能在 对象DBO插入重复键行。 BillIdentity'与独特 索引'IX _BillIdentity'。 声明已被终止。
我该如何发现这个异常?
目前我使用此代码检查:
catch (Exception ex) {
if (ex.Message.Contains("Cannot insert duplicate key row in object 'dbo._BillIdentity' with unique index 'IX__BillIdentity")) {
string ScriptKey = "$(function() {ShowMessage('Error');});";
ScriptManager.RegisterStartupScript(Page, GetType(), "script", ScriptKey, true);
}
}
我认为其臭代码。
有没有更好的办法?
为什么不在运行insert语句之前检查键是否存在? – 2011-05-25 06:47:19
@Johann Blais,这项工作有什么好处? – Shahin 2011-05-25 06:49:26
避免您要求的蹩脚的基于异常的解决方法;) – 2011-05-25 07:11:24