我遇到了与错误递归和 StackOverflowError 相关的编程问题。我在一个单独的线程中有这个案例:
public void subscribe(final String channel) {
try {
// blocking command
client.subscribe(channel);
} catch(ConnectionException e) {
subscribe(channel);
}
}
假设这个 ConnectionException 只是周期性地发生(就像每分钟一样)。几百次之后,我显然得到了一个 StackOverflowError。
我知道发生了什么,但我不知道如何解决这个问题(即在不增加调用堆栈的情况下静默重新订阅)。有任何想法吗?