在获得特定值后停止执行

本文关键字:执行 | 更新日期: 2023-09-27 18:21:55

我在类名InsertAndFetch:中有一个类似FetchData(查询)的函数

public static FetchData(query)
{
    da = new SqlDataAdapter();
    dt = new DataTable();
    dt.Clear();
    Connectivity.openconnection();
    cmd = new SqlCommand(query, Connectivity.cn);
    cmd.CommandType = CommandType.Text;
    da.SelectCommand = cmd;
    try
    {
        da.Fill(dt);
    }
    catch (SqlException e2)
    {
        MessageBox.Show(e2.Message);
    }
}

从"SaleOrder"类调用函数。

InsertAndFetch.FetchData("Select CustName from Customer where CId='Cus_1'");
txtcustname.Text=InsertAndFetch.dt.Rows[0][0].ToString();

这里假设在查询中出错,列的类型为CId,而不是实际列"CustId",在FetchData的定义中,将引发SQLException,指出列"CId"不是有效列。

现在,我希望控件在发生此异常后停止执行(不应退出应用程序),并且不要移回SaleOrder类中的函数调用,因为在为txtcustname赋值时会导致错误"索引0处没有行"。

在获得特定值后停止执行

您可以使用以下代码终止您的应用程序。

您可以为控制台应用程序使用以下代码:-

Environment.Exit(0);

您可以为WinForm应用程序使用以下代码:-

Application.Exit();

查看以下链接。

Application.Exit()方法的MSDN链接。

http://msdn.microsoft.com/en-us/library/ms157894%28v=vs.110%29.aspx

用于Environment.Exit(0)方法的MSDN链接。

msdn.microsoft.com/en-us/library/system.environment.exit(v=vs.110).aspx

它会给你详细的解释。

这是你想要的吗?

private bool canEnter=false;
private void TestFunc(int a)
{
    switch(a)
    {
         case(0):
         {
             Console.WriteLine("Zero");
             canExit=true;
             break;
         }
    }
    TestFunc(b);
    if(!canEnter)
    {
        HelloFunc(0);
        ThisFunc();
    }
}

您可以创建自己的异常,如

public class NewException : BaseException, ISerializable
{
    public NewException()
    {
        // Add implementation.
         // you can write code where you want to take your control after exception caught
    }
    public NewException(string message)
    {
        // Add implementation.
    }
}

并尝试在你的代码中使用它

 try
    {
        da.Fill(dt);
    }
    catch (NewException e2)
    {
       throw e2
    }

则异常类函数执行

您想要做的是使函数在达到0时返回。像这样:

private void TestFunc(int a)
{
    switch(a)
    {
        case(0):
        {
            Console.WriteLine("Zero");
            return;
        }
    }
}

只是为了让你知道退货适合代替休息:c#switch语句返回适合替换中断

或者,如果您不想返回,您可以抛出一个异常,这将退出您的函数。你可以处理异常而不做任何事情:

try
{
    private void TestFunc(int a)
    {
        switch(a)
        {
            case(0):
            {
                Console.WriteLine("Zero");
                throw new NotImplementedException();
            }
        }
    }
}
catch (NotImplementedException e)
{
    //Just do nothing here
}