我試圖調試一個libgdx應用程序......顯然,我在某個時間點產生了一個NullPointerException,但是libgdx有一個巨大的try-catch語句捕獲我的原始異常:libgdx捕獲所有的異常,只提供RuntimeException而不是原始的
public void run() {
graphics.setVSync(graphics.config.vSyncEnabled);
try {
LwjglApplication.this.mainLoop();
} catch (Throwable t) {
if (audio != null) audio.dispose();
if (t instanceof RuntimeException)
throw (RuntimeException)t;
else
throw new GdxRuntimeException(t);
}
}
因此,調試器停止在引發(Gdx)RuntimeException的catch語句中。我知道t包含了原始的異常,但我無法確定它來自哪裏。有沒有什麼辦法可以在產生異常的線上破解?
在這種情況下t的原因字段是對t本身的引用。此外,我粘貼的代碼是從libgdx庫中獲取的,我試圖搗亂它們的源代碼,但只是爲了在更新時不會遇到問題而使用它。 /編輯 從未使用過靜態分析儀。我會嘗試FindBugs,看看是否有幫助。我仍然認爲我應該以某種方式找到異常的來源,儘管我的程序崩潰... – Jay
我不知道他們是如何管理的?非常奇怪。您可能想切換到不具有該特定錯誤的'libgdx'的不同版本。 – BRFennPocock