The if check inside there is the right way to check if the key doesn’t yet exist, a different way would be to load all the data through LoadAllAsync and simply check the if the resulting dictionary contains the key you’re looking for.
The try catch block is for if there are any networking or service issues with CloudSave like timeouts, no internet connection, the service being unavailable or other kinds of networking issues. These are handled through a CloudSaveException object, the KeyNotFoundException that you’ve put here does not exist. The exceptions that do exist can be found here for the individual functions on the ICloudSaveDataClient object
Technically no, the savedData dictionary on line 3 can be empty if there wasn’t any data for that key. The request still execute successfully but would simply returned an empty response. Other than that I don’t see any issues that stand out