ExceptionContext.ExceptionHandled änderungen zu wahren. Wo ist die Ausnahme behandelt werden?

Ich bin mit einem global-action-filter für die Verarbeitung und protokolliert alle Ausnahmen.

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new ElmahHandleErrorAttribute());
        filters.Add(new HandleErrorAttribute());
    }

Dies ist, wie die " global action filter ElmahHandleErrorAttribute definiert ist, überschreibt es die OnException Methode.

public class ElmahHandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute
{
    public override void OnException(ExceptionContext context)
    {
       //Is the exception handled already? context.ExceptionHandled seems to be true here
        if (!context.IsChildAction && (context.HttpContext.IsCustomErrorEnabled))
        {
            //Do other stuff stuff
            //Log to Elmah               
        }
    }
   ...
 }

Ich verstehe nicht, warum der Wert von context.ExceptionHandled ist true, wenn die OnException Methode ausführt.
Wie ist diese Ausnahme immer gehandhabt?

-BEARBEITEN-
Ich habe eine customErrors Abschnitt in der Web.Config. Ich habe eine ErrorController Klasse und Aktionen aufgerufen General und Http404.

<customErrors mode ="On" defaultRedirect="Error/General">
      <error statusCode="404" redirect="Error/Http404"/>
  </customErrors>

Was ich nicht verstehe, ist, die controller-action General wird nicht ausgeführt (breakpoint wird nie erreicht), aber der Wert von ExceptionContext.ExceptionHandled ist true, wenn der OnException Methode der ElmahHandleErrorAttribute beginnt mit der Ausführung.

  • Ich kann nicht sehen context.ExceptionHandled im code, wo ist es?
  • Ich entfernte die Kontrollkästchen für Kontext.ExceptionHandled. Es war früher eingeschlossen in der Aussage: if (!context.IsChildAction && !context.ExceptionHandled && (context.HttpContext.IsCustomErrorEnabled))
  • Hast du das überschreiben der OnException - Methode der controller?
  • Nein, ich überschreiben der OnException Methode des MVC - HandleErrorAttribute filter.
InformationsquelleAutor escist | 2012-05-15
Schreibe einen Kommentar