首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理UpdateException?

如何处理UpdateException?
EN

Stack Overflow用户
提问于 2011-07-12 14:17:20
回答 3查看 7.4K关注 0票数 4

我需要句柄异常副本。

代码语言:javascript
复制
var resource = new Resource() { url = tbUrl.Text };
try
{
    context.Resource.AddObject(resource);
    context.SaveChanges();
}   
catch(UpdateException ex)
{
    // how to know exactly which is why the error occurred
}
catch (Exception ex)
{

    throw;
}

更新:

当我试图不添加唯一值时,我需要捕获一个错误。UpdateException -在添加数据时发生错误时触发。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-30 05:02:29

这可能有点晚,但是对于任何有ASP.NET数据库更新错误查找详细信息的人来说,InnerException错误处理程序是非常有用和详细的。

代码语言:javascript
复制
        try { 

            db.SaveChanges();                              
        }

        catch (System.Data.UpdateException ex)    
        {
            Console.WriteLine(ex.InnerException);
        }


        catch (System.Data.Entity.Infrastructure.DbUpdateException ex) //DbContext
        {
            Console.WriteLine(ex.InnerException);
        }

        catch (Exception ex)
        {

            Console.WriteLine(ex.InnerException);
            throw;
        }

数据库中的The防止插入重复的城市.

代码语言:javascript
复制
USE [ModelFirstApplication]
GO

/****** Object:  Index [UQ_Address_City]    Script Date: 5/30/2012 7:26:16 AM ******/
ALTER TABLE [dbo].[Addresses] ADD  CONSTRAINT [UQ_Address_City] UNIQUE NONCLUSTERED 
([City] ASC)
GO

因此,如果用户尝试将"Spokane“第二次插入到此演示应用程序的Addresses表中,则上述异常处理程序将报告。

代码语言:javascript
复制
System.Data.UpdateException: An error occurred while updating the entries. 

See the inner exception for details. ---> 

System.Data.SqlClient.SqlException: Violation of UNIQUE KEY constraint 'UQ_Address_City'. 
Cannot insert duplicate key in object 'dbo.Addresses'. 
The duplicate key value is (Spokane).
The statement has been terminated.

知道要使用哪个异常处理程序非常方便,您的问题也非常清楚。

票数 6
EN

Stack Overflow用户

发布于 2011-07-12 14:25:55

AppDomain.CurrentDomain.UnhandledException。另外,对于WPF应用程序来说,查看Application.Current.DispatcherUnhandledException是有意义的。

票数 0
EN

Stack Overflow用户

发布于 2011-07-12 14:24:49

最佳实践是将异常消息和堆栈跟踪写入日志文件,并通过使用log4net http://sadi02.wordpress.com/2008/06/29/log4net-tutorial-in-c-net-how-can-i-show-log-in-a-file/读取日志文件获取数据。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6665624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档