gpt4 book ai didi

c# - 如何确定它是否是参照完整性违规异常

转载 作者:行者123 更新时间:2023-11-30 13:27:37 26 4
gpt4 key购买 nike

我想要一种方法来检查我的 catch {} 子句,如果异常是由于引用完整性违规引起的,目前我正在使用下面的方法;是否有更好/优雅/更合适的方法来确定它是否是引用完整性异常?

public static bool IsReferencialIntegrityExcpetion(this Exception exception)
{
return exception is SqlException &&
exception.Message.Contains("The DELETE statement conflicted with the REFERENCE constraint ");
}

最佳答案

你能做的最好的就是 catch SqlException而不是 Exception。然后,您可以通过 ErrorCode 而不是依赖消息(547)。并且,请记住,您可以堆叠异常,它们将按顺序处理(因此首先放置更具体的捕获。您的代码将如下所示:

try
{
}
catch(SqlException sqlEx)
{
if(sqlEx.ErrorCode == 547)
throw;
}
catch(Exception ex)
{
//General error logic
}

如果您想要可能的错误代码的完整列表,请针对 MASTER 数据库运行 SELECT * FROM sysmessages

关于c# - 如何确定它是否是参照完整性违规异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9936293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com