J'ai un filtre d'exception personnalisé que j'utilise pour attraper une exception personnalisée que j'ai écrite, mais pour une raison quelconque, lorsque je lance mon exception, elle n'arrive jamais au filtre. Au lieu de cela, j'obtiens une erreur indiquant que mon exception n'a pas été gérée par le code utilisateur. Est-ce que quelqu'un peut me donner des conseils ou de l'aide sur la façon dont je devrais mettre cela en place ? Le code en question se trouve ci-dessous :
// controller
[CustomExceptionFilter]
public class SomeController : Controller
{
public SomeController()
{
}
public ActionResult Index()
{
SomeClass.SomeStaticMethod();
return View();
}
}
c'est le contrôleur avec l'attribut customexception
// some class (where exception is being thrown)
public class SomeClass
{
public static void SomeStaticMethod()
{
throw new MyCustomException("Test");
}
}
c'est la classe (pour mon test) qui lance l'exception (j'ai aussi essayé de la lancer directement sur le contrôleur).
// 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
}
}
}
c'est le filtre d'exception personnalisé... il n'est jamais atteint lorsque le code est exécuté et que l'exception est levée. Au lieu de cela, j'obtiens l'erreur mentionnée ci-dessus. Tout ce que j'ai lu indique que c'est la bonne façon de procéder, mais lorsque je place des points d'arrêt dans mon filtre personnalisé, il n'est jamais atteint....
Qu'est-ce qui m'échappe ?
TIA