在catch中自定义Sql Exception消息

时间:2013-02-19 23:40:39

标签: c# winforms entity-framework-4 try-catch sqlexception

我正在做一个用户可以插入/删除/添加实体的表单。我正在使用Winforms c#和实体框架4。

好的,用户可以删除对象。现在,这些对象可以被其他实体引用,因此如果用户想要删除它,他将获得异常。

我捕获该异常,以便向他显示一条消息,指出该对象已开始在其他对象中使用。

我得到的异常是(UpdateException)。但是,如果存在更新问题,也可以引发此异常。有没有办法从Sql使用此异常获取错误代码?因为我确实有这样的错误代码。

如果我使用SqlException,我可以检查它的号码,但这不是我收到的例外。

1 个答案:

答案 0 :(得分:-2)

你是说希望看到完整的例外情况,还是希望用户看到例外?

如果您想查看异常,可以将其写入文本文件:

try
{
    // do something
}
catch(SQLException sqlex)
{
    using (var file = new StreamWriter(@"C:\Users\Home\Desktop\sqlException.txt"))
    {
        file.WriteLine(sqlex.ToString());
    }
}
catch(Exception e)
{
    using (var file = new StreamWriter(@"C:\Users\Home\Desktop\generalException.txt"))
    {
        file.WriteLine(e.ToString());
    }
}

这会将异常写入桌面上的文本文件(根据需要更改目录)。