Если несколько фильтров будут соответствовать ошибке, будет запущен фильтр с наивысшим приоритетом.Есть два фактора для приоритета ExceptionFilter
:
Глобальный по сравнению с Локальным
Фильтры, которые привязаны к контроллеру или одному из его методов, всегда имеют более высокийприоритет перед глобальными фильтрами.
Контроллер:
// First NotfoundFilter is checked
@UseFilters(NotfoundFilter)
Global:
// Then GlobalErrorFilter is checked
app.useGlobalFilters(new GlobalErrorFilter());
Порядок регистрации
Фильтр, который был зарегистрирован последним, будет иметьвысший приоритетПоэтому самый специфический фильтр должен быть зарегистрирован последним:
@UseFilters(GlobalErrorFilter, NotfoundFilter)
// ^^^ 2nd ^^^ 1st
или
app.useGlobalFilters(new GlobalErrorFilter(), new NotfoundFilter());
// ^^^ 2nd ^^^ 1st