1

我正在使用 ASP.NET Boilerplate 构建一个 API,它们抽象出 HTTP 状态代码的错误处理和返回。我查看了文档,它只提到了 UserFriendlyException 和 AbpValidationException。

我可以使用 ASP.NET Boilerplate 及其返回的相应 HTTP 响应代码抛出哪些其他可用异常?

4

2 回答 2

6

下面是根据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;
    }

文档中的可用例外

于 2018-05-24T03:10:56.723 回答
2

可用的例外列表是;

  • Abp异常
  • 用户友好异常
  • AbpRemoteCallException
  • AbpValidationException
  • 背景作业异常
  • EntityNotFoundException
  • AbpAuthorizationException
  • AbpDbConcurrencyException
  • AbpInitializationException
于 2017-07-11T09:31:05.407 回答