Приложение ASP.NET MVC Методы контроллера разные:
При этом могут возникать два вида ошибок:
Не хотелось бы в коде контроллеров густо рассыпать try-catch, есть мысль ошибки валидации данных бросать исключениями, отлавливать их и системые ошибки в одном месте.
Возможно ли реализовать такое с помощью фильтров или как-то ещё?
Да, это можно сделать. Нужно реализовать интерфейс IExceptionFilter и полученный класс применить к нужным контроллерам. Вот ссылка на статью с примерами и описанием: Фильтры исключений
При необходимости можно применить фильтр глобально. Пример:
using System.Web.Mvc;
namespace WebApp2.Config
{
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new RangeExceptionAttribute());
}
}
}
Этот код вызывается из Global.asax
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
// Другая инициализация.
}
}
Внутри обработчика OnException ты можешь проанализировать исключение и сделать необходимые действия. Если тебе нужно реализовать разную логику реакции на разные исключения, ты можешь добавить несколько фильтров.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости