The recommended way of handling CoreData+CloudKit errors

What is the recommended way of intercepting and processing errors?

As far as I know, there are 4 main areas:

  • iCloud account status - this can be checked and intercepted via notifications
  • exceptions from fetch/execute/save - it can be a simple do..catch, but what exceptions can we expect here, what should be handled, and how?
  • there could be some asynchronous issues with synchronization. How should we intercept them and how should they be handled?
  • issues with iCloud storage - quota exceeded, etc. How to intercept & handle those?

I'm trying to achieve production-ready implementation, but there are many pitfalls and hidden issues that are not well documented. Could you provide some advice on how to handle properly all these situations?

The recommended way of handling CoreData+CloudKit errors
 
 
Q