我正在使用 ASP.NET Boilerplate 构建一个 API,它们抽象出 HTTP 状态代码的错误处理和返回。我查看了文档,它只提到了 UserFriendlyException 和 AbpValidationException。
我可以使用 ASP.NET Boilerplate 及其返回的相应 HTTP 响应代码抛出哪些其他可用异常?
我正在使用 ASP.NET Boilerplate 构建一个 API,它们抽象出 HTTP 状态代码的错误处理和返回。我查看了文档,它只提到了 UserFriendlyException 和 AbpValidationException。
我可以使用 ASP.NET Boilerplate 及其返回的相应 HTTP 响应代码抛出哪些其他可用异常?
下面是根据GetStatusCode() 方法的异常和对应的状态码:
- Abp.AbpException - 500
- Abp.AbpInitializationException - 500
- Abp.Authorization.AbpAuthorizationException - 可能是 403 或 401
- Abp.BackgroundJobs.BackgroundJobException - 500
- Abp.Domain.Entities.EntityNotFoundException - 404
- Abp.Domain.Uow.AbpDbConcurrencyException - 500
- Abp.Runtime.Validation.AbpValidationException - 400
- Abp.UI.UserFriendlyException - 500
- Abp.WebApi.Client.AbpRemoteCallException - 500
protected virtual HttpStatusCode GetStatusCode(HttpActionExecutedContext context)
{
if (context.Exception is Abp.Authorization.AbpAuthorizationException)
{
return AbpSession.UserId.HasValue
? HttpStatusCode.Forbidden
: HttpStatusCode.Unauthorized;
}
if (context.Exception is AbpValidationException)
{
return HttpStatusCode.BadRequest;
}
if (context.Exception is EntityNotFoundException)
{
return HttpStatusCode.NotFound;
}
return HttpStatusCode.InternalServerError;
}
可用的例外列表是;