gpt4 book ai didi

c# - 在C#中的重写方法中捕获异常

转载 作者:行者123 更新时间:2023-12-03 09:08:03 25 4
gpt4 key购买 nike

为什么以下catch块不捕获任何异常?
这与override-> base.Method()关系有关系吗?

在屏幕截图上,您可以看到抛出了数字2627的SqlException,但是catch块从不捕获它。

    public override int SaveChanges()
{
try
{
return base.SaveChanges();
}
catch (SqlException ex) when (ex.Number == 2627)
{
Log.Error($"Duplicate key constraint violation occured while submitting changes, {ex.Message}");
var (resource, duplicateKey) = ExtractDuplicateKeyViolationDetails(ex.Message);
throw new DuplicateKeyException(resource, duplicateKey);
}
catch (SqlException ex) when (ex.Number == 547)
{
Log.Error($"Constraint violation occured while submitting changes, {ex.Message}");
var (resource, property) = ExtractConstraintViolationDetails(ex.Message);
throw new ConstraintViolationException(resource, property);
}
}

enter image description here

最佳答案

您正在 Debug模式下运行代码。每当引发异常时,VS就会停止执行,这就是您所看到的。按F5继续执行,它将进入catch块。

关于c# - 在C#中的重写方法中捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60227864/

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