В моем API у меня есть стандартный контроллер, содержащий действие, действие вызывает службу, которая затем обращается к клиенту, чтобы связаться с API стороннего производителя.
Я ищу реализовать фильтр исключений что-то подобноеto:
public class CustomExceptionFilterAttribute : ExceptionFilterAttribute
{
private readonly IHostingEnvironment _hostingEnvironment;
private readonly IModelMetadataProvider _modelMetadataProvider;
public CustomExceptionFilterAttribute(
IHostingEnvironment hostingEnvironment,
IModelMetadataProvider modelMetadataProvider)
{
_hostingEnvironment = hostingEnvironment;
_modelMetadataProvider = modelMetadataProvider;
}
public override void OnException(ExceptionContext context)
{
if (!_hostingEnvironment.IsDevelopment())
{
// do nothing
return;
}
var result = new ViewResult {ViewName = "CustomError"};
result.ViewData = new ViewDataDictionary(_modelMetadataProvider,context.ModelState);
result.ViewData.Add("Exception", context.Exception);
// TODO: Pass additional detailed data via ViewData
context.Result = result;
}
}
Если мой клиентский класс, например, выдал исключение, вызовет ли фильтр немедленный вызов, даже если у моего класса обслуживания, который вызывает клиентский класс, была попытка перехвата, готовая перехватить такое исключение?