ASP.NET MVC Custom Error Handling Application_Error Global.asax?

Tengo un código básico para determinar los errores en mi aplicación MVC. Actualmente en mi proyecto tengo un controlador llamadoError con metodos de accionHTTPError404(), HTTPError500()yGeneral(). Todos aceptan un parámetro de cadena.error. Utilizando o modificando el siguiente código. ¿Cuál es la mejor manera de pasar los datos al controlador de errores para procesarlos? Me gustaría tener una solución lo más robusta posible.

protected void Application_Error(object sender, EventArgs e)
{
    Exception exception = Server.GetLastError();
    Response.Clear();

    HttpException httpException = exception as HttpException;
    if (httpException != null)
    {
        RouteData routeData = new RouteData();
        routeData.Values.Add("controller", "Error");
        switch (httpException.GetHttpCode())
        {
            case 404:
                // page not found
                routeData.Values.Add("action", "HttpError404");
                break;
            case 500:
                // server error
                routeData.Values.Add("action", "HttpError500");
                break;
            default:
                routeData.Values.Add("action", "General");
                break;
        }
        routeData.Values.Add("error", exception);
        // clear error on server
        Server.ClearError();

        // at this point how to properly pass route data to error controller?
    }
}

Respuestas a la pregunta(10)

Su respuesta a la pregunta