堆栈溢出后的java保存线程错误
我将Spring Boot
与RabbitMQ
一起使用。在某些情况下,我的使用者线程(SimpleMessageListenerContainer
)由于StackOverflowError
而中止。我在考虑捕获此类错误,以便保存线程,而不必每次都重新启动应用程序
- 通过该错误的线程是否处于可以继续工作的状态,还是应该让它死掉李>
- 如果让它死掉,我如何补充
org.springframework.amqp.rabbit
使用的池线程李>
我知道,一般来说,我们不应该抓住Error
丢弃的东西,但我想知道,如果我抓住了,在这种特殊情况下会发生什么
更新
最后,我只是在一个单独的线程中使用Future
执行了导致这种行为的操作,并将任何可丢弃的对象作为RuntimeException
进行屏蔽(捕获并重试)。这样,我可以处理消费者线程中保持干净的异常。这不是最有效的处理方法,但到目前为止效果很好,性能也不是问题
共 (0) 个答案