c#:try/catch数据库异常无法按预期工作
我有以下c#代码可以帮助我处理DB异常:c#:try/catch数据库异常无法按预期工作,c#,sql,sql-server,exception-handling,C#,Sql,Sql Server,Exception Handling,我有以下c#代码可以帮助我处理DB异常: try { db.Demandeur_Categorie.Remove(vModifSupp); db.SaveChanges(); } catch (SqlException ex) { msg = "Une erreur SQL s'est produite! La suppression dans la table 'Catégorie Demandeur' a échouée.
try
{
db.Demandeur_Categorie.Remove(vModifSupp);
db.SaveChanges();
}
catch (SqlException ex)
{
msg = "Une erreur SQL s'est produite! La suppression dans la table
'Catégorie Demandeur' a échouée. Raison: " + ex;
return Json(msg, JsonRequestBehavior.AllowGet);
}
但它抛出了一个错误
(“DELETE语句与引用约束冲突
…blabla)在db.SaveChanges()行
而不是去接球区
有人能帮忙吗?引发的异常不是类型
SqlException
。如果您想知道确切的类型,请在运行时检查该类型。我还建议您阅读异常的工作方式和类型层次结构
将其更改为catch(DbUpdateException ex)
请参阅,部分异常引发的异常不是类型
SqlException
。如果您想知道确切的类型,请在运行时检查该类型。我还建议您阅读异常的工作方式和类型层次结构
将其更改为catch(DbUpdateException ex)
请参阅“添加此代码”一节中的“例外情况”
catch (Exception ex)
{
string typeString = ex.GetType().FullName;
throw;
}
您将看到它可能不是SqlException添加此代码
catch (Exception ex)
{
string typeString = ex.GetType().FullName;
throw;
}
您将看到它可能不是SqlException,它可能是@Igor所说的,或者如果您正在调试,VS可能会将其视为第一次机会的异常(这意味着它会像那样崩溃,但最终会进入catch方法)如果这对您来说不是问题。您可以使用catch而不使用任何参数。将您的
SqlException
替换为Exception
S'il-vous-plaît,vous-devez-lire这可能是@Igor所说的,或者如果您正在调试,VS可能会将其视为第一次机会异常(这意味着它会像那样崩溃,但最终会进入catch方法)如果对您来说不是问题的话。您可以使用catch而不使用任何参数。将SqlException
替换为Exception
S'il vous plaît,vous devez lire检查文档中抛出的异常总是一个好主意:)谢谢,只是我的无知。“帕特利斯-我很乐意帮忙。请考虑用答案左边的复选标记来标记这个答案。检查文档的异常是一个好主意:谢谢,只是我的无知。”帕特利斯-我很乐意帮忙。请考虑用CH标记这个答案。在答案的左边打勾。