2012-10-19 16 views
3

我剛剛讀到「由Oracle jdbc驅動程序拋出的一些SqlExceptions在原因字段中引用了自身」。恕我直言,一個例外可以儘可能簡單地使我自己的頭髮從我的頭髮沼澤中走出來pull myself爲什麼原因鏈中的循環得到使用?

但這似乎是正常的,甚至Throwable.printStackTrace識別「循環引用」,這是唯一的此類發生在JDK我是知道的(例如,全Arrays.deep*方法結束了遞歸結構的堆棧溢出)。

那麼,在原因鏈中創建週期的原因是什麼?

+0

那麼你不得不問Oracle的作者。對我來說只是一個錯誤。 – EJP

回答

2

cause==this means that no cause has been initialized.getCause()在這種情況下將返回null。存在Throwable.printStackTrace中的代碼以處理多元素循環。我不認爲這樣的循環有任何好的理由,但也許有些是因爲缺陷或惡意而進入的。

相關問題