У меня есть различные фильтры, прежде чем URL-адрес попадет в действие контроллера.Как обрабатывать исключение, возникающее в фильтре?
Очень мало фильтров имеет сложную логику, которая может генерировать исключения.
Теперь, как я могу поймать эти исключения?
Для примера. У меня есть фильтр, который обрабатывает исключение, происходящее в методе контроллера.
[ActionFilter1]
- это фильтр, который обрабатывает любые исключения, возникающие в методе контроллера.
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//exception occuring here
}
Один из способов сделать что-то вроде этого:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
try {
//exception occuring here
}
catch {
//log here
}
}
, так как есть n
фильтров, я не хочу повторять эту логику добавления try
& catch
к каждому фильтру.
В этом случае, как я могу продолжить обработку ошибок в одном месте, которая может обрабатывать любые исключения, возникающие во всех этих фильтрах?
это может быть полезно: https://www.simple-talk.com/dotnet/asp-net/handling-errors-effectively-in-asp-net-mvc/ – Ziyad
Если вы не поймать это в фильтре, я думаю, что следующая остановка находится на уровне global/app. Проблема с исключениями фильтров заключается в том, что, если вы не едите его, вы не можете отображать представление, потому что действие действительно недействительно и не может быть вызвано снова, не вступая в цикл. –