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

标签 c# error-handling

我在Visual Studio的程序中有一个try{} catch{}块。在try{}块中,我具有连接到DB的代码,当我运行该程序时,它将返回错误。在这种情况下,程序必须执行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

最佳答案

默认情况下,并非所有异常类型都启用来破坏解决方案。您可以从“异常设置”窗口中选择启用的选项,如上图所示。
设置要抛出的CLR异常。这就是代码将中断的方式(如果没有try/catch),或者在您的情况下,try序列将中断,并且catch块将被执行。

对于不同的IDE:

VS2015: Debug -> Windows -> Exception Settings.

VS2012: Debug -> Exceptions more details

关于c# - 为什么不尝试{} catch {}在C#中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33967818/

相关文章:

带有参数名称和冒号的 C# 方法调用

c# - 编码器 SDK 4 - 推送到发布点

c# - 我可以从 InstallShield 可执行文件中获取 ProductCode 吗?

c# - 尝试写入 C# 的现有 XML 文件

javascript - 全局和特定错误处理AJAX jQuery

c# - C# .NET 中的表单

error-handling - 二进制搜索:please tell me whats wrong here

c++ - 标题保护 C++ 的“类”类型重新定义错误

jpa - 如果执行 DDL 语句出错,则使 EcliseLink 失败

python - 我可以让 Python 准确地告诉我哪个字符导致错误吗?