12 Stimmen

Benutzerdefinierter Ausnahmefilter wird in asp.net MVC nicht getroffen

Ich habe einen benutzerdefinierten Ausnahmefilter, die ich verwende, um eine benutzerdefinierte Ausnahme zu fangen, die ich schrieb, aber aus irgendeinem Grund, wenn ich meine Ausnahme werfen, es ist nicht immer an den Filter. Stattdessen erhalte ich nur eine Fehlermeldung, dass meine Ausnahme nicht vom Benutzercode behandelt wurde. Kann jemand bitte einige Ratschläge/Unterstützung bieten, wie ich dies eingerichtet haben sollte? Relevante Code ist unten:

// controller    
[CustomExceptionFilter]
    public class SomeController : Controller
    {    
        public SomeController()
        {

        }
        public ActionResult Index()
        {
            SomeClass.SomeStaticMethod();
            return View();
        }
    }

das ist der Controller mit dem Attribut customexception

// some class (where exception is being thrown)
public class SomeClass
{
    public static void SomeStaticMethod()
    {
        throw new MyCustomException("Test");
    }
}

Das ist die Klasse (für meinen Test), die die Ausnahme auslöst (ich habe auch versucht, sie direkt auf dem Controller auszulösen).

// Custom exception filter (want this to catch all unhandled exceptions)
public class CustomExceptionFilter : FilterAttribute, IExceptionFilter
{
    public void OnException(ExceptionContext filterContext)
    {
        if (filterContext.Exception.GetType() == typeof(MyCustomException))
        {
            // do stuff
        }
    }
}

das ist der benutzerdefinierte Ausnahmefilter ... es ist nie erreicht, wenn der Code ausgeführt wird und die Ausnahme ausgelöst wird. Stattdessen erhalte ich den oben erwähnten Fehler. Alles, was ich gelesen habe, deutet darauf hin, dass dies der richtige Weg, dies einzurichten ist, aber wenn ich Haltepunkte in meinem benutzerdefinierten Filter setzen, ist es nie getroffen....

Was übersehe ich hier?

TIA

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X