当前位置: 首页 > 知识库问答 >
问题:

Quarkus ExceptionMapper不处理WebApplicationException

公冶高峯
2023-03-14
@Path("/failable")
public class FailableResource {

  @Inject
  @RestClient
  private SomeHttpClient httpClient;

  @GET
  @Path("fails")
  @Produces(MediaType.TEXT_PLAIN)
  public String fails() {
    try {
      return httpClient.someQuery();
    } catch (Exception e) {
      e.printStackTrace();
      throw e;
    }
  }

  @GET
  @Path("works")
  @Produces(MediaType.TEXT_PLAIN)
  public String works() {
    try {
      return httpClient.someQuery();
    } catch (Exception e) {
      e.printStackTrace();
      throw new IllegalStateException("Not a WebApplicationException");
    }
  }
}

和ExceptionMapper

@Provider
public class HandleMySillyError implements ExceptionMapper<Throwable> {

  @Override
  public Response toResponse(Throwable e) {
    e.printStackTrace();
    return Response.ok("Some handled response").build();
  }
}

共有1个答案

容飞掣
2023-03-14

我发现在Quarkus:dev模式下运行时,不会调用异常映射器。这似乎是由仅在开发模式下使用的quarkus异常映射器造成的(请参见https://github.com/quarkusio/quarkus/issues/7883)。

我像普通的java程序一样在本地启动代码,使异常处理程序按预期工作。同样,在Openshift上运行代码时,也使用了我的自定义异常映射器。

注意:我使用的是quarkus版本1.8.3

 类似资料:
  • ValidationExceptionHandler.java 当我运行我的代码并传递无效的电子邮件地址时,我会得到以下异常。从不执行HandleConstraintVilvation中的代码。异常中返回的http状态是500,但我想返回400。你知道我怎么才能做到吗?

  • 我正在使用spring批处理使用RepositoryItemReader从postgresql DB读取记录,然后将其写入主题。我看到大约有100万条记录需要处理,但它并没有处理所有的记录。我已经将reader的pageSize设置为10,000并且与提交间隔(块大小)相同

  • 问题内容: Sidekiq可以阻止哪些可能的原因来处理队列中的作业?队列已满。日志文件表明完全没有活动。因此,队列已满,但日志为空,Sidekiq似乎未处理项目。似乎没有工人在处理工作。重新启动Redis或用FLUSHALL或FLUSHDB冲洗均无效。Sidekiq已开始于 捆绑执行程序sidekiq -L log / sidekiq.log 并生成以下日志文​​件: 您如何找出问题所在?是否有隐

  • 我已经尝试从一个jar文件导入(例如快捷hull3d)在处理2.2.1和3.2.1在Linux和Mac上根据这里给出的说明 我的目录结构如下所示 ../处理/Sketchbook/库/quickhull3d/库/quickhull3d。罐子 处理IDE首选项将素描本位置设置为... /Processing/Sketchbook 在我的。pde文件,我有开场白 我得到了错误: 找不到用于Quickh

  • 我正在使用Spring Boot 1.5.9开发我的应用程序。我需要实现jwt身份验证,我使用了jjwt库。以下代码来自我的自定义身份验证安全筛选器,它继承自。在这里,我试图从令牌解析用户名,当自动解析用户名时,jwt会验证用户名,并检查令牌的过期时间。我调试了它,它可以工作,所以接下来我想向客户端应用发送正确的消息,说明身份验证失败的原因。我想抛出一个ExpiredJwtException,并使

  • 我无法让JsonDeserializer处理空值。我正在读取一个json文件,其中我的记录类型只有四个值:Case 1、Case 2、*或null。JsonDeserializer可以很好地处理前3个。但是,遇到null时它似乎什么也做不了。根据代码(请参阅下面我的自定义反序列化器),我希望该行 要么抛出一个异常(从而将text = "NULL "赋值)。或者,根据返回一个空字符串 同样,我在这里