Como obtenho a exceção que acontece no evento decorrido com temporizador?

Estou trabalhando com o aplicativo Windows Forms e tenho uma classe de gerenciador que usa System.Timers.Timer para verificar periodicamente os dados do banco de dados.

Como obtenho a exceção que ocorre no manipulador de eventos decorrido do timer entregue no aplicativo principal? Se eu estiver usando o código abaixo, a exceção get será "engolida" e o aplicativo principal nunca o receberá (mesmo que eu tenha manipuladores para ThreadException e 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);
        }
    }

questionAnswers(4)

yourAnswerToTheQuestion