我在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发出的:
最佳答案
默认情况下,并非所有异常类型都启用来破坏解决方案。您可以从“异常设置”窗口中选择启用的选项,如上图所示。
设置要抛出的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/