Error+Extension.swift 686 B

123456789101112131415161718192021222324252627282930313233
  1. //
  2. // Error+Extension.swift
  3. // Bark
  4. //
  5. // Created by huangfeng on 2023/3/3.
  6. // Copyright © 2023 Fin. All rights reserved.
  7. //
  8. import Foundation
  9. extension String: @retroactive Error {}
  10. public enum ApiError: Swift.Error {
  11. case Error(info: String)
  12. case AccountBanned(info: String)
  13. }
  14. extension Swift.Error {
  15. func rawString() -> String {
  16. if let err = self as? String {
  17. return err
  18. }
  19. guard let err = self as? ApiError else {
  20. return self.localizedDescription
  21. }
  22. switch err {
  23. case .Error(let info):
  24. return info
  25. case .AccountBanned(let info):
  26. return info
  27. }
  28. }
  29. }