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

时间:2017-05-22 18:50:01

标签: 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);
  }

但它会抛出错误

  

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

而不是去捕捉区。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:6)

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

将其更改为SqlException

请参阅documentation部分例外

答案 1 :(得分:0)

添加此代码。

 catch (Exception ex)
 {
     string typeString = ex.GetType().FullName;
     throw;
 }

你会看到它可能不是SqlException