CoreDataError.swift 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import Foundation
  2. enum CoreDataError: Error {
  3. case validationError(function: String, file: String)
  4. case creationError(function: String, file: String)
  5. case batchInsertError(function: String, file: String)
  6. case batchDeleteError(function: String, file: String)
  7. case persistentHistoryChangeError(function: String, file: String)
  8. case unexpectedError(error: Error, function: String, file: String)
  9. case fetchError(function: String, file: String)
  10. case storeNotInitializedError(function: String, file: String)
  11. }
  12. extension CoreDataError: LocalizedError {
  13. var errorDescription: String? {
  14. switch self {
  15. case let .creationError(function, file):
  16. return String(localized: "Failed to create a new object in \(function) from \(file).")
  17. case let .batchInsertError(function, file):
  18. return String(localized: "Failed to execute a batch insert request in \(function) from \(file).")
  19. case let .batchDeleteError(function, file):
  20. return String(localized: "Failed to execute a batch delete request in \(function) from \(file).")
  21. case let .persistentHistoryChangeError(function, file):
  22. return String(localized: "Failed to execute a persistent history change request in \(function) from \(file).")
  23. case let .unexpectedError(error, function, file):
  24. return String(localized: "Received unexpected error in \(function) from \(file): \(error.localizedDescription)")
  25. case let .fetchError(function, file):
  26. return String(localized: "Failed to fetch object \(DebuggingIdentifiers.failed) in \(function) from \(file).")
  27. case let .validationError(function, file):
  28. return String(localized: "Failed to validate object in \(function) from \(file).")
  29. case let .storeNotInitializedError(function, file):
  30. return String(localized: "Store not initialized in \(function) from \(file).")
  31. }
  32. }
  33. }
  34. extension CoreDataError: Identifiable {
  35. var id: String? {
  36. errorDescription
  37. }
  38. }