Beenden Sie die Anwendung im Falle einer nicht behandelten Ausnahme

[Ich verstehe, dass es Hunderte von ähnlichen Fragen im Internet gibt, aber ich bin immer noch nicht in der Lage, eine funktionierende Lösung für dieses Problem zu finden und es daher zu posten.]

Ich habe eine c # Win-Form-Anwendung. Die Anwendung wird zum Herunterladen von Bildern über FTP von einem anderen Server verwendet.

Mithilfe eines Taskplaners wird die Anwendung dreimal täglich ausgeführt und lädt die Bilder herunter. Danach wird sie automatisch geschlossen.

Es hat letztes Jahr gut funktioniert, aber seit Anfang dieses Jahres werden Ausnahmen wie "Zeitüberschreitung bei Anfragen" oder "Zeitüberschreitung bei Vorgängen" in der Anwendung nicht behandelt.

Damit die Anwendung nicht automatisch geschlossen wird, wird ein Windows-Dialogfeld mit den Schaltflächen "Weiter" und "Beenden" angezeigt.

Meine Anforderung ist, dass die Anwendung Automatisch schließen für den Fall, dass eine nicht behandelte Ausnahme ausgelöst wird.

Ich habe den folgenden Code in meine program.cs geschrieben, um damit umzugehen. Das funktioniert aber auch nicht und ich bekomme immer noch Ausnahmefenster.

    [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;
    }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage