3

我刚刚读到“Oracle jdbc 驱动程序抛出的一些 SqlExceptions 在原因字段中引用了自身”。恕我直言,一个例外很容易引起,就像我可以将自己从头发的沼泽中拉出来一样容易。

但这似乎很正常,甚至可以Throwable.printStackTrace识别“循环引用”,这是我所知道的 JDK 中唯一这样的地方(例如,所有Arrays.deep*方法最终都会导致递归结构的堆栈溢出)。

那么在原因链中创建循环的原因是什么?

4

1 回答 1

2

cause==this表示没有初始化任何原因。 在这种情况下getCause()会返回。null中的代码Throwable.printStackTrace用于处理多元素循环。我认为这样的循环没有任何充分的理由,但也许有些是由于错误或恶意而进入的。

于 2012-10-29T03:02:12.930 回答