c#:try/catch数据库异常无法按预期工作

Pat*_*ice 0 c# sql sql-server exception-handling

我有以下c#代码,可以帮助我处理数据库异常:

  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);
  }
Run Code Online (Sandbox Code Playgroud)

但它会引发错误

("DELETE语句与REFERENCE约束... blabla冲突")行db.SaveChanges();

而不是去捕获块.

有人可以帮忙吗?

Igo*_*gor 6

抛出的异常不是类型SqlException.如果您想知道确切的类型,请在运行时检查类型.我还建议您阅读有关异常如何工作和类型层次结构的信息.

将其更改为 catch(DbUpdateException ex)

请参阅文档," 例外"部分.

  • 检查文档中的异常抛出总是一个好主意:) (2认同)