¿Cómo obtengo la excepción que ocurre en el evento Timer Elapsed?

Estoy trabajando con la aplicación Windows Forms y tengo una clase de administrador que usa System.Timers.Timer para verificar periódicamente los datos de la base de datos.

¿Cómo obtengo la excepción que ocurre en el controlador de eventos transcurrido del temporizador entregado en la aplicación principal? Si estoy usando el código a continuación, la excepción se "traga" y la aplicación principal nunca lo obtiene (incluso si tengo controladores para ThreadException y UnHandledException).

// 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);
        }
    }

Respuestas a la pregunta(4)

Su respuesta a la pregunta