Application_Error no global.asax não capturando erros no WebAPI

Para um projeto em que estou trabalhando, uma das coisas que estamos implementando é algo para o qual temos código em algumas de minhas equipes - projetos ASP.NET e MVC mais antigos - umApplication_Error coletor de exceção que envia um email para a equipe de desenvolvimento com a experiência da exceção e os detalhes mais relevantes.

Veja como fica:

Global.asax:

protected void Application_Error(object sender, EventArgs e)
{
    Exception ex = Server.GetLastError();
    string path = "N/A";
    if (sender is HttpApplication)
        path = ((HttpApplication) sender).Request.Url.PathAndQuery;

    string args = string.Format("<b>Path:</b> {0}", path);

    // Custom code that generates an HTML-formatted exception dump
    string message = Email.GenerateExceptionMessage(ex, args);

    // Custom code that sends an email to the dev team.
    Email.SendUnexpectedErrorMessage("Some App", message);
}

Um problema "menor", no entanto - quando intencionalmente uma parte do código gera uma exceção para testar esse mecanismo ...

public static void GetMuffinsByTopping(string topping)
{
    throw new Exception("Test Exception!", new Exception("Test Inner Exception!!!"));

    // Actual repository code is unreachable while this test code is there
}

O JavaScript front-end está interceptando imediatamente uma solicitação HTTP 500, mas o código global.asax.cs mencionado acima não está sendo alcançado (eu defino um ponto de interrupção na primeira linha de execução do método).

Pergunta, questão: De que maneira posso obter o "antigo"Application_Error manipulador para enviar e-mails de erro, para que os desenvolvedores da nossa equipe possam depurar mais facilmente nosso aplicativo?

questionAnswers(1)

yourAnswerToTheQuestion