我有一個數據表單,它可以在按下按鈕時執行一些計算。一旦按下這個按鈕,一個靜態類的對象就被實例化了。該對象也在其他各種類中調用不同的方法。檢查外部類拋出的異常類
我設計這些類的方式是,如果發生任何錯誤,將處理異常,並且類方法將在asp:ValidationSummary中顯示錯誤消息。
現在,當從這個數據表單中,我嘗試保存我的值,即使validationSummary在窗體上顯示錯誤,無效值也會保存在數據庫中。
我可以在此外部類中創建一個名爲IsValid的靜態屬性,每次由該方法拋出異常時該靜態屬性都設置爲false,但由於這些方法由對象重複調用,因此此屬性將設置爲true if沒有任何異常拋出,從而導致旁路的IF條件。
有沒有辦法處理這種情況?
這是拋出異常的方法。此方法屬於ClsOmChallan類。 .dll文件被引用到我的項目中,沒有別的。
public static double getResultFromAstmTables(string TableName, double ObserveTemp, double ObserveGravity)
{
SqlConnection conn = new SqlConnection(clsConnection.ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.Connection = conn;
cmd.CommandText = "select result from astm_tables where table_no = '" + TableName + "' and temperature = '" + ObserveTemp + "' and gravity = '" + ObserveGravity + "'";
try
{
conn.Open();
double result1;
result1 = Convert.ToDouble(cmd.ExecuteScalar());
isValid = true;
return result1;
}
catch (Exception ex)
{
ValidationError.Display("clsAstmTables + getResultsFromAstmTables " + ex.Message.ToString());
isValid = false;
return 0;
}
finally
{
if (conn.State == System.Data.ConnectionState.Open) conn.Close();
cmd.Dispose();
}
}
我不太理解你所做的。你能提供一些小代碼嗎? –
@ImmortalBlue請檢查編輯 –
你爲什麼試圖在靜態做到這一點?爲什麼不把它放在一個物體上? –