如何在SubmitChanges()期间为不同类型的异常提供友好的错误消息

时间:2010-10-11 21:21:59

标签: .net silverlight silverlight-4.0 c#-4.0

我有一个gridview,它将具有Insert / Delete / Update。 我现在关注的有两种异常是并发和唯一约束

现在我可以使用

捕获异常
  private void OnSubmitChangesCompleted(SubmitOperation so)
    {
        if (so.HasError)
        {

            //RadWindow.Alert("Modification is failed because of concurrency issue."+ "\nPlease close the window and reopen it", OnClosed);
            //so.MarkErrorAsHandled();
            MessageBox.Show(string.Format("Submit Failed: {0}", so.Error.Message));
            so.MarkErrorAsHandled();
        }

    }

然而,消息太不友好了。并且不要澄清它是并发异常还是唯一约束异常。

有人可以告诉我如何澄清它们吗?我尝试使用GetType()来查看它们有什么样的异常,但我都得到了DomainOperationException的异常。

注意:对于Update的情况,它应该能够捕获并发异常或唯一约束异常。对于Delete,我认为只能抛出并发异常。对于Insert,只能抛出Unique约束异常。

任何帮助都将不胜感激。

我在

的情况下发现了类似的情况

http://forums.silverlight.net/forums/t/198896.aspx

但我真的不知道如何检查类似的东西

BananaCannotBeDeleted()在该示例中,因为我需要在我的情况下检查涉及数据库的唯一或并发。

1 个答案:

答案 0 :(得分:0)

您可能需要捕获特定的异常服务器端并随身携带特定消息。

例如,捕获ConcurrencyException和UniqueConstraintException然后抛出您自己的异常和消息。