Try / Catch没有抓住
在下面的代码中,我故意将“@fooData”错误地输入到“@ foo111Data”以检查try语句是否正在捕获我的exception。 见下面的代码。 但是try / catch语句没有在MessageBox中捕获并显示和exception,而VS2010只是分解并突出显示错误代码行。
try { conn.Open(); cmd.Parameters.AddWithValue("@foo111Data", dataStrTb1.Text); cmd.ExecuteNonQuery(); } catch (SqlCeException ex) { MessageBox.Show(ex.ToString()); } finally { conn.Close(); }
也许抛出不同类型的例外? 我建议您更改catch
以便它只捕获一般Exception
,并查看它是否正在抛出另一种类型。
在MessageBox.Show
行的catch
语句中放置一个断点,然后您可以检查Exception
。
尝试捕获SqlException
catch (SqlException ex) { MessageBox.Show(ex.ToString()); }
而不是SqlCeException尝试捕获所有exception,看看它是如何工作的。
我实际上会使用记录器,而不仅仅是你现在正在做的消息框。
尝试
try { conn.Open(); cmd.Parameters.AddWithValue("@foo111Data", `dataStrTb1.Text); cmd.ExecuteNonQuery(); } catch (SqlException ex) { MessageBox.Show(ex.ToString()); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { conn.Close(); }`
Visual Studio中有一个function,使您可以在抛出exception时停止,即使它被捕获也是如此。
只需单击menuitem Debugging,然后单击Exceptions,然后单击“thrown”列并取消标记您不希望导致调试器自动中断的某些exception。
上述就是C#学习教程:Try / Catch没有抓住分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/943137.html