C# 检查外部类引发的异常

C# 检查外部类引发的异常,c#,asp.net,oop,C#,Asp.net,Oop,我有一个数据表,在按下按钮时执行一些计算。按下此按钮后,将实例化静态类的对象。这个对象也在不同的其他类中调用不同的方法 我设计这些类的方式是,如果抛出任何错误,将处理异常,并且类方法将在asp:ValidationSummary中显示错误消息。 现在,当我从这个数据表单保存我的值时,即使validationSummary在表单上显示错误,无效值也会保存在数据库中 我可以在这个外部类中创建一个名为IsValid的静态属性,每当该方法抛出异常时,该属性就会设置为false,但是由于这些方法被对象重复

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

我设计这些类的方式是,如果抛出任何错误,将处理异常,并且类方法将在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();
        }

    }

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

你也可以试试

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

            base.Validate();
        }  

有关更多详细信息,请查看。

我不太明白您所做的。你能提供一个小代码吗?@blue请检查编辑为什么你要在静态环境中这样做?为什么不把它放在一个物体里呢?好吧,假设我放在一个物体里。我能得到什么好处?此方法是从另一个类的另一个对象调用的。所以方法调用的继承权是这样的:WebPage->ConversionObject->GetResultsFromAstTable。我将如何处理网页中的异常?此外,这个静态函数是从各种其他类调用的,如果我把它放在一个对象中,我也必须更改所有其他类。好处是,您可以为要执行的每个操作创建一个对象。然后您可以看到一个失败的操作。否则,当您有很多操作返回并且forthI检查了链接时,您会遇到您遇到的问题。这不适用于我的场景。