有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

堆栈溢出后的java保存线程错误

我将Spring BootRabbitMQ一起使用。在某些情况下,我的使用者线程(SimpleMessageListenerContainer)由于StackOverflowError而中止。我在考虑捕获此类错误,以便保存线程,而不必每次都重新启动应用程序

  1. 通过该错误的线程是否处于可以继续工作的状态,还是应该让它死掉
  2. 如果让它死掉,我如何补充org.springframework.amqp.rabbit使用的池线程

我知道,一般来说,我们不应该抓住Error丢弃的东西,但我想知道,如果我抓住了,在这种特殊情况下会发生什么

更新

最后,我只是在一个单独的线程中使用Future执行了导致这种行为的操作,并将任何可丢弃的对象作为RuntimeException进行屏蔽(捕获并重试)。这样,我可以处理消费者线程中保持干净的异常。这不是最有效的处理方法,但到目前为止效果很好,性能也不是问题


共 (0) 个答案