Wie erhalte ich die Ausnahme, die im Ereignis "Timer verstrichen" auftritt?

Ich arbeite mit einer Windows Forms-Anwendung und habe eine Manager-Klasse, die System.Timers.Timer verwendet, um regelmäßig Daten aus der Datenbank zu überprüfen.

Wie erhalte ich die Ausnahme, die in der Ereignisbehandlungsroutine für abgelaufene Zeit auftritt, die in die Hauptanwendung übertragen wird? Wenn ich den folgenden Code verwende, wird die Ausnahme "verschluckt", und die Hauptanwendung erhält sie nie (selbst wenn ich Handler für ThreadException und UnHandledException habe).

// Main Form
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

// Manager class
private System.Timers.Timer _timer;

    void _timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        try
        {
            doSomeDatabaseActions();
        }
        catch (Exception ex)
        {
            throw new ApplicationException("How do I get this error back into main thread...", ex);
        }
    }

Antworten auf die Frage(8)

Ihre Antwort auf die Frage