[据我所知,有100个在网上类似问题的,但我还是没能找到一个工作解决了这个问题,因此张贴]退出任何未处理的异常的情况下,应用
我有ac#Win-Form应用程序。该应用程序用于从另一台服务器通过FTP下载图像。
在任务计划程序的帮助下,应用程序每天运行3次并下载图像,之后它会自动关闭。
然而,自去年年初以来,我们从应用程序中获取未处理的异常,如“请求超时”或“操作超时”。
因此,不是应用程序自动关闭,而是显示一个带有“继续”和“退出”按钮的窗口对话框。
我的要求是,应用程序应该自动关闭万一引发任何未处理的异常。
我在我的program.cs中编写了下面的代码来处理这个问题。但是,这也不起作用,我仍然收到异常窗口。
[STAThread]
static void Main()
{
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
static void MyHandler(object sender, UnhandledExceptionEventArgs args)
{
System.Diagnostics.Process proc = System.Diagnostics.Process.GetCurrentProcess();
System.Windows.Forms.Application.Exit();
System.Environment.Exit(0);
proc.Kill();
return;
}
为什么要解析_UnhandledExceptionEventArgs_作为参数?为什么不使用try-catch块? –
@AhsN因为他正在订阅'currentDomain.UnhandledException'。异常可能来自单独的线程。 –