在Java 中處理NullPointerException 時,開發人員可能會遇到堆疊追蹤完全缺失的情況,這使得處理起來很困難追蹤異常的來源。
通常,當引發 NullPointerException 時,其堆疊追蹤會提供有關違規程式碼路徑的有價值的資訊。但是,HotSpot JVM 執行的某些最佳化可以抑制這些堆疊追蹤。
要檢索堆疊跟踪,必須將以下選項傳遞給JVM:
-XX:-OmitStackTraceInFastThrow
此選項指示JVM 避免最佳化NullPointerException 的處理,確保每次出現異常時都會列印堆疊追蹤。
HotSpot JVM 採用最佳化技術來快取經常發生的異常(特別是 NullPointerException)的堆疊追蹤。此最佳化旨在增強效能並防止過多記錄相同的堆疊追蹤。
在 HotSpot JVM 中,此最佳化在檔案 graphKit.cpp 中實作。它涉及到一個名為 OmitStackTraceInFastThrow 的全域變量,它控制堆疊追蹤的抑制。
以上是當優化阻礙 NullPointerException 時,如何取得 NullPointerException 的堆疊追蹤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!