【问题标题】:try catch finally最后尝试抓住
【发布时间】:2012-12-16 17:02:05
【问题描述】:

也许这对你来说很简单,但对我来说不是。 我有这个代码:

Private int InsertData()
{ 
  int rezultat = 0;
       try
       {
           if (sqlconn.State != ConnectionState.Open)
           {
               sqlconn.Open();
           }
           rezultat = (int)cmd.ExecuteScalar();

       }
       catch (Exception ex)
       {
           lblMesaje.Text = "Eroare: " + ex.Message.ToString();

       }
       finally
       {
           if (sqlconn.State != ConnectionState.Closed)
           {
               sqlconn.Close();
           }
       }

       return rezultat;
}

仅用于在表中插入新记录。即使这会引发错误“指定的强制转换无效”。 “rezultat=(int)cmd.ExecuteScalar();” - 代码执行完毕,将行插入数据库,继续执行。

为什么会继续? Maby 我终于不明白 try catch 的意思了 微笑 | :)

谢谢!

【问题讨论】:

  • 用编程语言标记您的问题以吸引合适的受众。

标签: try-catch finally


【解决方案1】:

在您的代码中,您明确地捕获了异常。这就是为什么继续执行。 如果要在捕获到任何异常时停止执行,则需要抛出异常。 抛出新异常(ex.getMessage());

但这不是最佳做法。尝试只捕获已声明的异常,而不是高级 Exception 类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    相关资源
    最近更新 更多