NullPointerException in Java ohne StackTrace
Wenn in Java-Code eine NullPointerException auftritt, ist es üblich, den Stack-Trace zu Debugging-Zwecken zu protokollieren. Manchmal ist der Stack-Trace jedoch leer, was die Entwickler verwirrt.
Eine mögliche Erklärung ist, dass Sie die HotSpot-JVM verwenden, die für ihre Optimierungsfunktionen bekannt ist. Um die Leistung zu priorisieren, unterdrückt die HotSpot-JVM möglicherweise Stack-Traces für häufig auftretende Ausnahmen. Um diese Stack-Traces abzurufen, fügen Sie die folgende JVM-Option hinzu:
-XX:-OmitStackTraceInFastThrow
Diese Optimierung, die durch die OmitStackTraceInFastThrow-Variable in der Datei graphKit.cpp der HotSpot-JVM implementiert wird, versucht, die Protokollierung sich wiederholender Stack-Traces für häufig auftretende Ausnahmen zu verhindern . Durch Deaktivieren dieser Optimierung können Sie die Stack-Trace-Ausgabe wiederherstellen und so die Quelle der NullPointerException genau bestimmen.
Das obige ist der detaillierte Inhalt vonWarum fehlt in meiner Java-NullPointerException ein Stack-Trace?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!