我在我的应用程序中尝试加载可由用户创建的级别,因此当输入错误的文件时,我想保护我的应用程序免于崩溃。我该怎么办?
这是我当前的代码:
Json json = new Json();
json.setIgnoreUnknownFields(true);
JsonWorldValueCache jsonWrldCache = json.fromJson(JsonWorldValueCache.class, jsonWorld);
最佳答案
您可以从两个方面解决问题:
首先,您可以按照@Elliott的建议,使用try-catch语句包围Json#fromJson()
调用。如果发现异常,请礼貌地告诉玩家他们创建的级别有问题,然后询问他们是否要尝试再次加载(大概在修复后)或返回。
其次,您可以为用户提供一个关卡编辑器,这样他们就不必直接修改JSON文件。尽管这不会消除失败的可能性(用户非常擅长破坏事物),但是它将消除大多数问题,因为您的编辑器可以确保在关卡文件中遵循正确的结构和值。