Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#:try/catch数据库异常无法按预期工作_C#_Sql_Sql Server_Exception Handling - Fatal编程技术网

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

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.

我有以下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. 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标记这个答案。在答案的左边打勾。