2016-12-31 33 views
1

我在我的應用程序試圖加載可以由用戶創建的級別,我想保護我的應用程序免受崩潰時,它會得到錯誤的輸入文件。我應該怎麼做?如何保護libgdx函數免受JSON影響?

這是我當前的代碼:

Json json = new Json(); 
json.setIgnoreUnknownFields(true); 
JsonWorldValueCache jsonWrldCache = json.fromJson(JsonWorldValueCache.class, jsonWorld); 
+0

添加try-catch?請澄清你的意思*通過發佈足夠的代碼來重現問題,以保護我的應用程序免遭崩潰。 –

+0

謝謝try&catch解決了我的問題。 –

回答

0

您可以在兩個方面解決這個問題:

首先,你可以環繞Json#fromJson()通話用try-catch語句作爲@Elliott建議。如果您發現異常,請禮貌地告訴玩家他們創建的關卡有什麼問題,並詢問他們是否想再次嘗試重新載入(大概在他們修好之後)或返回。

其次,您可以爲用戶提供關卡編輯器,以便他們不必直接修改JSON文件。雖然這不會消除失敗的可能性(用戶擅長破壞事物),但它會消除大部分問題,因爲編輯器可以確保在關卡文件中遵守適當的結構和值。

相關問題