我刚刚读到“Oracle jdbc 驱动程序抛出的一些 SqlExceptions 在 cause 字段中引用了自身”。恕我直言,异常可能会像我一样容易地自行导致 pull myself从我头发旁边的沼泽里出来。
但这似乎是正常的,甚至 Throwable.printStackTrace
也识别“循环引用”,这是我所知道的 JDK 中唯一这样的地方(例如所有 Arrays.deep*
方法以递归结构的堆栈溢出结束。
那么在原因链中产生循环的原因是什么?
最佳答案
cause==this
means that no cause has been initialized.在这种情况下,getCause()
将返回 null
。 Throwable.printStackTrace
中的代码用于处理多元素循环。我认为这种循环没有任何充分的理由,但也许有些是由于错误或恶意造成的。
关于java - 为什么会使用原因链中的循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12983131/