1

是否可以让我的 API 始终处理给定的异常?在每一个方法中,我都在捕获 DbEntityValidationExceptions 和 ValidationExceptions。每个方法都以相同的方式实现这些捕获。有没有办法委派我的 API 或项目在任何时候抛出这些错误时都可以使用的路由?

这是每个方法的示例(再次具体来说,这是一个 APIController):

        try
        {
            //Do something
        }
        catch(ValidationException ex)
        {
            var errors = ErrorsAdd(new[] { ex.ValidationResult });
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, errors, _format));
        }
        catch (DbEntityValidationException ex)
        {
            var errors = ErrorsAdd(ex.EntityValidationErrors);
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound, errors, _format));
        }
4

1 回答 1

2

创建一个全局过滤器来处理这些异常并采取适当的行动。在默认的 MVC 站点中应该已经有一个处理所有异常的 ErrorFilter。你可以像它一样创建一个,除了只处理特定的错误。

于 2012-11-29T21:42:44.430 回答