Я полагаю, вы ошибаетесь в реализации вашего пользовательского класса.Ниже приведен пример реализации пользовательского класса исключений.
public class APIExceptionFilter : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext actionExecutedContext)
{
// Assign the status code that you want as output
HttpStatusCode status = HttpStatusCode.InternalServerError;
string messageToBeDisplayed = "TestMessage";
actionExecutedContext.Response = new HttpResponseMessage { StatusCode = status, Content = new StringContent( messageToBeDisplayed , System.Text.Encoding.UTF8) };
base.OnException(actionExecutedContext);
}
}
Внутри вашего класса "WebApiConfig" и метода "Register" вам необходимо добавить фильтры "APIExceptionFilter", как показано ниже, так как он будет регистрировать его для всех запросов:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Add this......
config.Filters.Add(new APIExceptionFilter());
}
}