为什么不尝试{} catch {}在C#中工作?

时间:2015-11-28 04:50:16

标签: c# error-handling

我的Visual Studio程序中有一个try{} catch{}块。在try{}块中,我有代码连接到数据库,当我运行该程序时,它返回一个错误。在这种情况下,程序必须执行catch{}块,但是try{}块返回错误,程序停止。

try {
  using (OracleConnection cn = new OracleConnection(DataBase.EDS_SDE_Connection)) {
    cn.Open();
    using (OracleCommand cm = cn.CreateCommand()) {
      cm.CommandType = CommandType.StoredProcedure;
      cm.CommandText = "EDS_FEAUTRE_CLASSES.DIS_ENA_TRG_LOG";
      OracleParameter oParam = new OracleParameter("PISDISABLE", OracleDbType.Decimal);
      oParam.Direction = ParameterDirection.Input;
      oParam.Value = pIsDisable;
      cm.Parameters.Add(oParam);
      cm.ExecuteNonQuery();
    }
  }
  bRet = true;
} catch (Exception ex) {
  ClsShares.ShowMessage("", ex.Message);
  bRet = false;
}

这是来自下面突出显示的chekbox:

enter image description here

1 个答案:

答案 0 :(得分:0)

默认情况下,并非所有异常类型都会启用以中断解决方案。您可以从图像中的上方显示的“例外设置”窗口中选择启用哪些功能。 设置要抛出的CLR异常集。这就是代码将如何中断(如果没有try / catch)或者在你的情况下try命令会中断并且catch块将被执行。

对于不同的IDE:

VS2015: Debug -> Windows -> Exception Settings.

VS2012: Debug -> Exceptions more details