是否可以在给定异常的情况下始终处理我的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));
}
答案 0 :(得分:2)
创建一个全局过滤器,处理这些异常并采取适当的行动。在默认的MVC站点中,应该已经有一个处理所有异常的ErrorFilter。除了只处理特定错误外,您可以创建一个类似的错误。