在下面的代码中,多次用到了catch.其实每次的处理方式都是一样的.但就是不知道怎么优化,请各位兄弟姐妹们指点一下,小生这里先谢过了!
----------------------------------------------------------------------------------------
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
showData();
}
} #region Web 窗体设计器生成的代码
                  ..................
#endregion protected void showData()
{
try
{
conSpeedell.Open();
OleDbDataReader reader = cmdQuery.ExecuteReader(); if(reader.HasRows)
{
dgCategory.DataSource = reader;
dgCategory.DataBind();
}
else
showMessage.Text = "\"产品类型\"为空!"; reader.Close();
conSpeedell.Close();
}
catch(System.Exception strArgument)
{
showMessage.Text = "Error!Case:"+strArgument.ToString();
}
} private void buttonInsert_Click(object sender, System.EventArgs e)
{
try
{
cmdInsert.Parameters["category"].Value = tbInput.Text;
conSpeedell.Open();
cmdInsert.ExecuteNonQuery();
conSpeedell.Close();
tbInput.Text = ""; showData();
}
catch(System.Exception strArgument)
{
showMessage.Text = "Error!Case:"+strArgument.ToString();
} } private void dgCategory_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
try
{
conSpeedell.Open();
cmdDelAll.Parameters["sn"].Value = e.Item.Cells[2].Text;
cmdDelAll.ExecuteNonQuery();
conSpeedell.Close(); showData();
}
catch(System.Exception strArgument)
{
showMessage.Text = "Error!Case:"+strArgument.ToString();
}
}

解决方案 »

  1.   

    try
    {}
    catch(er)
    {
      throw er;
    }
    然后再调用的时候一起获取不知道会不会快
      

  2.   

    个人觉得没必要该了,要不就在catch中调个共通函数
      

  3.   

    spland(spland):个人觉得没必要该了,要不就在catch中调个共通函数
    ----------------------------------------------------------
    catch(System.Exception strArgument)
    {
        showError(strArgument);
    }protected void showError(Exception strError)
    {
        showMessage.Text = "Error!Case:"+strError.ToString();
    }
    ----------------------------------------------------------
    是这样的吗?