检查外部类抛出的异常

时间:2013-04-03 06:03:22

标签: c# asp.net oop

我有一个数据表单,可以在按下按钮时执行一些计算。按下此按钮后,将实例化静态类的对象。此对象也调用其他各种类中的不同方法。

我设计了这些类,如果抛出任何错误,将处理异常并且类方法将在asp:ValidationSummary中显示错误消息。
现在,当从这个数据表单中,我尝试保存我的值,即使validationSummary在表单上显示错误,无效值也会保存在数据库中。

我可以在这个外部类中创建一个名为IsValid的静态属性,每次方法抛出异常时都会将其设置为false,但是由于这些方法被对象重复调用,因此如果存在这个属性,则该属性将设置为true不会抛出任何异常,从而导致绕过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();
        }

    }

1 个答案:

答案 0 :(得分:0)

您可以尝试使用将在服务器端调用验证方法的验证程序。 Validator知道显示验证摘要和停止页面处理。

另外,你可以尝试

 public override void Validate() {
            //put your logic here
            // Now perform validation

            base.Validate();
        }  

有关详细信息,请查看this