C# 在Visual Studio 2017上,如何关闭try/catch中的软件?
我正在用Visual studio 2017上的C#开发一个软件,我希望它在数据库关闭时不会初始化,所以我尝试了下面的try/catch,但软件仍然没有退出,我有两个按钮要退出,它们可以工作,但是try-catch上的退出不能。我尝试了很多方法,将app.exit和close代码放在许多不同的地方,从其他功能调用,但都不起作用。 代码如下:C# 在Visual Studio 2017上,如何关闭try/catch中的软件?,c#,winforms,C#,Winforms,我正在用Visual studio 2017上的C#开发一个软件,我希望它在数据库关闭时不会初始化,所以我尝试了下面的try/catch,但软件仍然没有退出,我有两个按钮要退出,它们可以工作,但是try-catch上的退出不能。我尝试了很多方法,将app.exit和close代码放在许多不同的地方,从其他功能调用,但都不起作用。 代码如下: public partial class Form1 : Form { int errobd = 0; public Form1()
public partial class Form1 : Form
{
int errobd = 0;
public Form1()
{
InitializeComponent();
try
{
string connectionString = "server=localhost;user id=root;persistsecurityinfo=True;database=bd_cem";
MySqlConnection connection = new MySqlConnection(connectionString);
connection.Open();
connection.Close();
}
catch
{
Close();
// at this point, the errobd++ works, so the if down there will be true
errobd++;
MessageBox.Show("Error message.");
Application.Exit();
Debug.WriteLine("ERRO = " + errobd);
}
if(errobd>0)
{
Sairsembanco();
}
LoadSalaNome();
LoadADI();
}
在所有这些努力之后,LoadSalaNome()函数仍在尝试运行,由于数据库已关闭,软件将崩溃。您也可以尝试此函数:
Environment.Exit(exitCode)
这将终止进程并为底层操作系统提供指定的退出代码。这要求您具有SecurityPermissionFlag.UnmanagedCode
权限,否则会发生SecurityException
错误。
这是运行控制台应用程序时要使用的调用。您也可以尝试此调用:
Environment.Exit(exitCode)
这将终止进程并为底层操作系统提供指定的退出代码。这要求您具有SecurityPermissionFlag.UnmanagedCode
权限,否则会发生SecurityException
错误。
这是在运行控制台应用程序时要使用的调用。在
应用程序之后放置return
。退出
。基本上,您不应该试图从主窗体的构造函数中终止应用程序。或者(1)设置一个a标志并在另一个点退出,如Load()或show()事件,或者(2)通过在program.cs中执行这种类型的签入来阻止窗体加载。感谢您的提醒,我一定会查看该程序。csKeneth K。我保留了environment.exit,它工作得很好。抱歉男:/,但如果你尝试一下,我很乐意知道它是否有效。闲着,我确实在program.cs使用了try-catch,它可以工作,甚至更快,谢谢你的帮助@肯尼思克。(仅参考)在应用程序之后放置一个return
。退出
。基本上,您不应该试图从主窗体的构造函数中终止应用程序。或者(1)设置一个a标志并在另一个点退出,如Load()或show()事件,或者(2)通过在program.cs中执行这种类型的签入来阻止窗体加载。感谢您的提醒,我一定会查看该程序。csKeneth K。我保留了environment.exit,它工作得很好。抱歉男:/,但如果你尝试一下,我很乐意知道它是否有效。闲着,我确实在program.cs使用了try-catch,它可以工作,甚至更快,谢谢你的帮助@肯尼思克。(只是引用)天哪,你太快了,我以为这需要几天才能得到答案,它成功了!]谢谢天哪,你太快了,我以为这需要几天才能得到答案,它成功了!]谢谢