catch中的自定义Sql异常消息

本文关键字:异常 消息 Sql 自定义 catch | 更新日期: 2023-09-27 18:00:07

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

好的,用户可以删除对象。现在,这些对象可以被其他实体引用,所以如果用户想删除它,他会得到一个异常。

我捕捉到这个异常,以便向他显示一条消息,说明该对象已开始在其他对象中使用。

我得到的异常是(UpdateException)。但是,如果也存在更新问题,则可能会引发此异常。是否有任何方法可以使用此异常从Sql获取错误代码?因为当这种情况发生时,我确实会抛出错误代码。

如果我使用SqlException,我可以检查它的编号,但这不是我收到的异常。

catch中的自定义Sql异常消息

您的意思是想要查看完整的异常,还是希望用户查看异常?

如果你想看到异常,你可以把它写到一个文本文件:

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());
    }
}

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