在获得特定值后停止执行
本文关键字:执行 | 更新日期: 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
}